Junos interfaces configuration module
Version: 2019-01-01
module junos-qfx-conf-interfaces { yang-version 1; namespace "http://yang.juniper.net/junos-qfx/conf/interfaces"; prefix jc-interfaces; 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 interfaces configuration module"; revision "2019-01-01" { description "Junos: 21.3R1.9"; } augment /jc:configuration { uses interfaces-group; } augment /jc:configuration/jc:groups { uses interfaces-group; } grouping interfaces-group { container interfaces { description "Interface configuration"; uses apply-advanced; list interface-set { key "name"; ordered-by user; description "Logical interface set configuration"; leaf name { type string; } uses apply-advanced; list interface { key "name"; ordered-by user; description "One or more interfaces that belong to interface set"; leaf name { junos:must "("interfaces $$")"; junos:must-message "Interface should have configuration defined for adding to interface-set"; type union { type jt:interface-device; type string { pattern "<.*>|$.*"; } } description "Interface name"; } uses apply-advanced; list unit { junos:must "(!(".. vlan-tags-outer"))"; junos:must-message "'unit' statement cannot be included along with 'vlan-tags-outer' statement"; key "name"; description "One or more logical interface unit numbers"; leaf name { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 1073741823"; } } description "Unit number"; } uses apply-advanced; } // list unit list vlan-tags-outer { junos:must "(!(".. unit"))"; junos:must-message "'vlan-tags-outer' statement cannot be included along with 'unit' statement"; key "name"; description "One or more outer VLAN tags"; leaf name { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 4094"; } } description "VLAN tag ID"; } uses apply-advanced; } // list vlan-tags-outer } // list interface } // list interface-set container stacked-interface-set { presence "enable stacked-interface-set"; description "Stacked interface set configuration"; uses apply-advanced; list interface-set { key "name"; ordered-by user; description "Stacked parent interface set configuration"; leaf name { type string; } uses apply-advanced; list interface-set { key "name"; ordered-by user; description "Stacked child interface set configuration"; leaf name { type string; } uses apply-advanced; } // list interface-set } // list interface-set } // container stacked-interface-set container traceoptions { description "Interface 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"; description "Tracing parameters"; leaf name { type enumeration { enum "all" { value 0; description "Enable all configuration logging"; } enum "kernel" { value 1; description "Log configuration IPC messages to kernel"; } enum "change-events" { value 2; description "Log changes that produce configuration events"; } enum "kernel-detail" { value 3; description "Log details of configuration messages to kernel"; } enum "config-states" { value 4; description "Log the configuration state machine changes"; } enum "resource-usage" { value 5; description "Log the resource usage for different states"; } enum "gres-events" { value 6; description "Log the events related to GRES "; } enum "select-events" { value 7; description "Log the events on select state machine "; } enum "bfd-events" { value 8; description "Log BFD related events"; } enum "lib-events" { value 9; description "Log DCD library related events"; } enum "reserved" { value 10; description "Reserved DCD logs"; } enum "emergency" { value 11; description "Log DCD emergency events"; } enum "alert" { value 12; description "Log DCD alert events"; } enum "critical" { value 13; description "Log DCD critical events"; } enum "error" { value 14; description "Log DCD error events"; } enum "warning" { value 15; description "Log DCD warning events"; } enum "notice" { value 16; description "Log DCD notification events"; } enum "informational" { value 17; description "Log DCD informations"; } enum "debugging" { value 18; description "Log DCD debug events"; } enum "verbose" { value 19; description "Log DCD debug all events"; } enum "japi" { value 20; description "Log DCD JAPI events"; } } } leaf disable { type empty; description "Disable this trace flag"; } } // list flag } // container traceoptions list interface-range { key "name"; ordered-by user; description "Interface ranges configuration"; leaf name { type string { junos:posix-pattern "^[[:alpha:]][[:alnum:]_.-]+$"; junos:pattern-message "Must start with a letter followed by letters, numbers, dashes or underscore"; length "1 .. 128"; } description "Interface-range name"; } list member { key "name"; ordered-by user; description "Interfaces belonging to the interface range"; leaf name { type union { type jt:interface-range-wild; type string { pattern "<.*>|$.*"; } } description "Member interface name"; } uses apply-advanced; } // list member list member-range { key "name"; ordered-by user; description "Interfaces range in <start-range> to <end-range> format"; leaf name { type union { type jt:interface-device; type string { pattern "<.*>|$.*"; } } } leaf end-range { type union { type jt:interface-device; type string { pattern "<.*>|$.*"; } } } } // list member-range uses apply-advanced; leaf description { type string; description "Text description of interface"; } leaf external-model-name { type string; description "Name for interface as configured using 3rd-party model"; } leaf metadata { type string; description "Text metadata attached to interface"; } choice enable-disable { leaf disable { type empty; description "Disable this interface"; } } // choice enable-disable container fabric-options { description "Fabric interface specific options"; uses apply-advanced; list member-interfaces { key "name"; description "Member interface for the fabric interface"; leaf name { junos:must "(!(("interfaces $$ flexible-vlan-tagging" || ("interfaces $$ stacked-vlan-tagging" || ("interfaces $$ vlan-vci-tagging" || "interfaces $$ vlan-tagging")))))"; junos:must-message "VLAN configuration is not allowed on fabric member"; junos:must "(!("interfaces $$ disable"))"; junos:must-message "fabric member device disable setting is not allowed"; junos:must "(!("interfaces $$ encapsulation"))"; junos:must-message "fabric member device encapsulation is not allowed"; junos:must "(!("interfaces $$ mac"))"; junos:must-message "fabric member device mac address setting is not allowed"; junos:must "(!("interfaces $$ mtu"))"; junos:must-message "fabric member device mtu setting and vlan-tagging is not allowed"; junos:must "(!("interfaces $$ passive-monitor-mode"))"; junos:must-message "Fabric member cannot be configured in passive monitor mode"; junos:must "(!("interfaces $$ gigether-options 802.3ad"))"; junos:must-message "Fabric member cannot be part of aggregated ethernet"; junos:must "(!("interfaces $$ gigether-options redundant-parent"))"; junos:must-message "Fabric member cannot be part of redundant ethernet"; junos:must "(!("interfaces $$ unit"))"; junos:must-message "Logical unit is not allowed on fabric member"; junos:must "(!("system autoinstallation"))"; junos:must-message "incompatible with 'system autoinstallation'"; type union { type jt:interface-device; type string { pattern "<.*>|$.*"; } } description "Interface name of member"; } uses apply-advanced; } // list member-interfaces container remote-chassis { presence "enable remote-chassis"; description "Remote chassis reachability"; uses apply-advanced; leaf destination { type jt:ipv4addr; description "Destination IP address to reach remote chassis"; } } // container remote-chassis } // container fabric-options container traceoptions { presence "enable traceoptions"; description "Interface trace options"; uses apply-advanced; list flag { key "name"; ordered-by user; description "Tracing parameters"; leaf name { type enumeration { enum "ipc" { value 0; description "Trace interface IPC messages"; } enum "event" { value 1; description "Trace interface events"; } enum "media" { value 2; description "Trace interface media changes"; } enum "all" { value 3; description "Enable all interface trace flags"; } } } } // list flag } // container traceoptions leaf passive-monitor-mode { junos:must "(!(("services nat ipv6-multicast-interfaces $$={all}" || "services nat ipv6-multicast-interfaces ${interface}")))"; junos:must-message "Can not configure 'services nat ipv6-multicast-interfaces' when passive montioring is enabled for the interface"; junos:must "(!((".. encapsulation ethernet-ccc" || (".. encapsulation ethernet-tcc" || (".. encapsulation ethernet-bridge" || (".. encapsulation ethernet-vpls" || (".. encapsulation extended-vlan-ccc" || (".. encapsulation extended-vlan-tcc" || (".. encapsulation extended-vlan-vpls" || (".. encapsulation extended-vlan-bridge" || (".. encapsulation flexible-ethernet-services" || (".. encapsulation vlan-ccc" || (".. encapsulation vlan-vci-ccc" || ".. encapsulation vlan-vpls")))))))))))))"; junos:must-message "Not compatible with specified 'encapsulation`"; type empty; description "Use interface to tap packets from another router"; } choice keepalive_choices { container keepalives { presence "enable keepalives"; description "Send or demand keepalive messages"; uses keepalives_type; } // container keepalives leaf no-keepalives { type empty; description "Do not send keepalive messages"; } } // choice keepalive_choices choice traps-choice { leaf traps { type empty; description "Enable SNMP notifications on state changes"; } leaf no-traps { type empty; description "Don't enable SNMP notifications on state changes"; } } // choice traps-choice choice interface-mib-choice { leaf interface-mib { type empty; description "Enable interface-related MIBs"; } leaf no-interface-mib { type empty; description "Don't enable interface-related MIBs"; } } // choice interface-mib-choice leaf accounting-profile { junos:must "(("accounting-options interface-profile $$" || "accounting-options flat-file-profile $$"))"; junos:must-message "referenced accounting profile must be defined"; type string; description "Accounting profile name"; } choice scheduler_type { choice per-unit-scheduler-choice { leaf per-unit-scheduler { type empty; description "Enable subunit queuing on Frame Relay or VLAN IQ interface"; } leaf no-per-unit-scheduler { type empty; description "Don't enable subunit queuing on Frame Relay or VLAN IQ interface"; } } // choice per-unit-scheduler-choice leaf shared-scheduler { junos:must "((".. vlan-tagging" || (".. stacked-vlan-tagging" || (".. flexible-vlan-tagging" || ".. vlan-vci-tagging"))))"; junos:must-message "vlan tagging needs to be enabled for shared scheduler"; type empty; description "Enabled shared queuing on an IQ2 interface"; } container hierarchical-scheduler { presence "enable hierarchical-scheduler"; description "Enable hierarchical scheduling"; leaf maximum-hierarchy-levels { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "2 .. 4"; } } description "Maximum hierarchy levels"; } leaf implicit-hierarchy { type empty; description "Implicit hierarchy (follows interface hierarchy)"; } } // container hierarchical-scheduler } // choice scheduler_type leaf l2tp-maximum-session { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 64000"; } } description "Maximum L2TP session"; } leaf schedulers { type union { type uint32; type string { pattern "<.*>|$.*"; } } description "Number of schedulers to allocate for interface"; } leaf cascade-port { junos:must "(!(any "logical-systems <*> interfaces ${interface}"))"; junos:must-message "cascade-port cannot be part of logical-systems config"; junos:must "(!(".. flexible-vlan-tagging"))"; junos:must-message "cascade-port cannot have flexible-vlan-tagging config"; junos:must "(!(".. stacked-vlan-tagging"))"; junos:must-message "cascade-port cannot have stacked-vlan-tagging config"; junos:must "(!(".. vlan-tagging"))"; junos:must-message "cascade-port cannot have vlan-tagging config"; junos:must "("chassis satellite-management")"; junos:must-message "chassis satellite-management must be defined"; type empty; description "Cascade port"; } leaf dce { type empty; description "Respond to Frame Relay status enquiry messages"; } choice vlan_tag_mode { leaf vlan-tagging { junos:must "(!(("protocols dot1x authenticator interface ${interface}.0" || "protocols dot1x supplicant interface ${interface}.0")))"; junos:must-message "Dot1x is not supported on vlan-tagged interface"; type empty; description "802.1q VLAN tagging support"; } leaf stacked-vlan-tagging { junos:must "(!(("protocols dot1x authenticator interface ${interface}.0" || "protocols dot1x supplicant interface ${interface}.0")))"; junos:must-message "Dot1x is not supported on vlan-tagged interface"; junos:must "(!((".. passive-monitor-mode" || ".. 802.3ad")))"; junos:must-message "Not compatible with passive-monitor-mode statement"; type empty; description "Stacked 802.1q VLAN tagging support"; } leaf flexible-vlan-tagging { junos:must "(!(("protocols dot1x authenticator interface ${interface}.0" || "protocols dot1x supplicant interface ${interface}.0")))"; junos:must-message "Dot1x is not supported on vlan-tagged interface"; type empty; description "Support for no tagging, or single and double 802.1q VLAN tagging"; } leaf vlan-vci-tagging { type empty; description "CCC for VLAN Q-in-Q and ATM VPI/VCI interworking"; } } // choice vlan_tag_mode leaf native-vlan-id { junos:must "((".. flexible-vlan-tagging" || (".. unit $$={0} family bridge interface-mode trunk" || (".. unit $$={0} family ethernet-switching interface-mode trunk" || (any "logical-systems <*> interfaces ${interface} unit <*> family bridge interface-mode trunk" || any "logical-systems <*> interfaces ${interface} unit <*> family ethernet-switching interface-mode trunk")))))"; junos:must-message "native-vlan-id can be specified with flexible-vlan-tagging mode or with interface-mode trunk"; type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 4094"; } } description "Virtual LAN identifier for untagged frames"; } leaf input-native-vlan-push { junos:must "(any "interfaces ${interface} unit <*> input-vlan-map push ")"; junos:must-message "input-native-vlan-push can be set only when input-vlan-map push is configured"; type enumeration { enum "disable" { value 0; description "Disable input-native-vlan-push"; } enum "enable" { value 1; description "Enable input-native-vlan-push"; } } default "enable"; description "Control native-vlan-id insertion to untagged frames when input-vlan-map push is configured"; } leaf number-of-sub-ports { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 8"; } } description "Number of channels to create for a port"; } leaf unused { type empty; description "Disable physical port"; } leaf speed { type enumeration { enum "auto" { junos:must "((!("interfaces ${interface} gigether-options 802.3ad") || !("interfaces ${interface} ether-options 802.3ad")))"; junos:must-message "Auto speed cannot be configured for an aggregated ethernet member link"; junos:must "(("interfaces ${interface} gigether-options auto-negotiation" || "interfaces ${interface} ether-options auto-negotiation"))"; junos:must-message "gigether-options/ether-options auto-negotiation must be enabled"; value 0; description "Enable auto negotiation of interface speed"; } enum "auto-10m-100m" { junos:must "((!("interfaces ${interface} gigether-options 802.3ad") || !("interfaces ${interface} ether-options 802.3ad")))"; junos:must-message "Auto speed cannot be configured for an aggregated ethernet member link"; junos:must "(("interfaces ${interface} gigether-options auto-negotiation" || "interfaces ${interface} ether-options auto-negotiation"))"; junos:must-message "gigether-options/ether-options auto-negotiation must be enabled"; value 1; description "Enable auto negotiation of limiting interface speed to 10m/100m"; } enum "10m" { value 2; } enum "100m" { value 3; } enum "1g" { value 4; } enum "2.5g" { value 5; } enum "5g" { value 6; } enum "10g" { value 7; } enum "25g" { value 8; } enum "40g" { value 9; } enum "50g" { value 10; } enum "100g" { value 11; } enum "200g" { value 12; } enum "400g" { value 13; } enum "oc3" { value 14; } enum "oc12" { value 15; } enum "oc48" { value 16; } } description "Link speed"; } leaf mtu { junos:must "(!("interfaces ${interface} container-options container-list"))"; junos:must-message "mtu is not supported for container child interfaces"; type union { type string { pattern "<.*>|$.*"; } type uint32; } description "Maximum transmit packet size"; } container hold-time { description "Hold time for link up and link down"; leaf up { type union { type uint32; type string { pattern "<.*>|$.*"; } } units "milliseconds"; description "Link up hold time"; } leaf down { type union { type uint32; type string { pattern "<.*>|$.*"; } } units "milliseconds"; description "Link down hold time"; } } // container hold-time container damping { description "Interface damping parameters"; uses apply-advanced; leaf half-life { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 30"; } } units "seconds"; default "5"; description "Damping half life time"; } leaf max-suppress { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 20000"; } } units "seconds"; default "20"; description "Maximum suppress time"; } leaf reuse { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 20000"; } } default "1000"; description "Reuse threshold"; } leaf suppress { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 20000"; } } default "2000"; description "Suppress threshold"; } leaf enable { type empty; description "Enable interface damping"; } } // container damping container link-degrade-monitor { presence "enable link-degrade-monitor"; description "Enable link degrade monitoring"; uses apply-advanced; choice enable_choice { leaf link-degrade-monitor-enable { type empty; description "Enable Link Degrade Monitoring"; } leaf no-link-degrade-monitor-enable { type empty; description "Disable Link Degrade Monitoring"; } } // choice enable_choice container actions { description "Action upon link degrade event"; uses apply-advanced; choice action_choice { leaf media-based { type empty; description "Media based"; } } // choice action_choice } // container actions container recovery { description "Link degrade recovery mechanism"; uses apply-advanced; leaf timer { junos:must "(!(".. manual"))"; junos:must-message "Recovery mechanism must be auto to configure recovery timer"; type union { type uint32; type string { pattern "<.*>|$.*"; } } default "1800"; description "Auto recovery timer in seconds"; } choice receovery_choice { leaf auto { type empty; description "Automatic recovery"; } leaf manual { type empty; description "Manual recovery"; } } // choice receovery_choice } // container recovery container thresholds { description "Link degrade threshold parameters"; uses apply-advanced; leaf set { type string { junos:posix-pattern "^1e-(1[0-6]?|[2-9])$"; junos:pattern-message "Ber threshold value in format: 1e-n, n = 1..16"; } default "1e-7"; description "BER at which link considered degraded(1..16)"; } leaf clear { type string { junos:posix-pattern "^1e-(1[0-6]?|[2-9])$"; junos:pattern-message "Ber threshold value in format: 1e-n, n = 1..16"; } default "1e-12"; description "BER at which link considered improved(1..16)"; } leaf warning-set { type string { junos:posix-pattern "^1e-(1[0-6]?|[2-9])$"; junos:pattern-message "Ber threshold value in format: 1e-n, n = 1..16"; } default "1e-9"; description "BER at which link degrade warning raised(1..16)"; } leaf warning-clear { type string { junos:posix-pattern "^1e-(1[0-6]?|[2-9])$"; junos:pattern-message "Ber threshold value in format: 1e-n, n = 1..16"; } default "1e-11"; description "BER at which link degrade warning cleared(1..16)"; } leaf interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 256"; } } default "10"; description "Consecutive link degrade events"; } } // container thresholds } // container link-degrade-monitor container satop-options { junos:must "((!(".. t1-options framing") && !(".. e1-options framing")))"; junos:must-message "SAToP & Framing cannot be configured on same interface"; junos:must "(!(".. ima-link-options"))"; junos:must-message "SAToP & IMA cannot be configured on same interface"; junos:must "((!("interfaces ${interface} container-options") || ("interfaces ${interface} container-options container-type" || "interfaces ${interface} container-options allow-configuration-override")))"; junos:must-message "satop-options cannot be configured without allow-configuration-override"; description "Structure-Agnostic TDM over Packet protocol options"; uses apply-advanced; leaf idle-pattern { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "An 8-bit hexadecimal pattern to replace TDM data in a lost packet"; } leaf payload-size { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "64 .. 1024"; } } description "Number of payload bytes per packet"; } container excessive-packet-loss-rate { description "Packet loss options"; uses apply-advanced; leaf threshold { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "1 .. 100"; } } description "Percentile designating the threshold of excessive packet loss rate"; } leaf sample-period { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1000 .. 65535"; } } description "Number of milliseconds over which excessive packet loss rate is calculated"; } } // container excessive-packet-loss-rate choice jitter-buffer-size { leaf jitter-buffer-packets { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 64"; } } description "Number of packets in jitter buffer before packet data is played out in the line"; } leaf jitter-buffer-latency { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 1000"; } } units "milliseconds"; description "Number of milliseconds delay in jitter buffer before packet data is played out in the line"; } leaf jitter-buffer-auto-adjust { type empty; description "Automatically adjust jitter buffer"; } } // choice jitter-buffer-size leaf bit-rate { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 10240"; } } description "In multiples of DS0"; } } // container satop-options container cesopsn-options { junos:must "((!("interfaces ${interface} container-options") || ("interfaces ${interface} container-options container-type" || "interfaces ${interface} container-options allow-configuration-override")))"; junos:must-message "cesopsn-options cannot be configured without allow-configuration-override"; description "Structure-Aware TDM over Packet protocol options"; uses apply-advanced; leaf idle-pattern { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "An 8-bit hexadecimal pattern to replace TDM data in a lost packet"; } leaf packetization-latency { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1000 .. 8000"; } } units "microseconds"; description "Number of microseconds to create packets"; } leaf payload-size { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "64 .. 1024"; } } description "Number of payload bytes per packet"; } container excessive-packet-loss-rate { description "Packet loss options"; uses apply-advanced; leaf threshold { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "1 .. 100"; } } description "Percentile designating the threshold of excessive packet loss rate"; } leaf sample-period { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1000 .. 65535"; } } description "Number of milliseconds over which excessive packet loss rate is calculated"; } } // container excessive-packet-loss-rate choice jitter-buffer-size { leaf jitter-buffer-packets { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 64"; } } description "Number of packets in jitter buffer before packet data is played out in the line"; } leaf jitter-buffer-latency { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 1000"; } } units "milliseconds"; description "Number of milliseconds delay in jitter buffer before packet data is played out in the line"; } leaf jitter-buffer-auto-adjust { type empty; description "Automatically adjust jitter buffer"; } } // choice jitter-buffer-size leaf bit-rate { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 10240"; } } description "In multiples of DS0"; } } // container cesopsn-options container clocking { description "Interface clock source"; choice clocking_choices { leaf internal { type empty; description "Clocking provided by local system"; } container external { presence "enable external"; description "Clocking provided by DCE (loop timing)"; } // container external } // choice clocking_choices } // container clocking leaf link-mode { type enumeration { enum "automatic" { value 0; description "Automatically negotiate duplex"; } enum "half-duplex" { value 1; description "Half-duplex operation"; } enum "full-duplex" { value 2; description "Full-duplex operation"; } } description "Link operational mode"; } leaf encapsulation { junos:must "(!("interfaces ${interface} container-options container-list"))"; junos:must-message "encapsulation is not supported for container child interfaces"; type enumeration { enum "ethernet" { value 0; description "Ethernet physical media"; } enum "fddi" { value 1; description "FDDI physical media"; } enum "token-ring" { value 2; description "Token Ring physical media"; } enum "ppp" { value 3; description "Serial PPP device"; } enum "ppp-ccc" { value 4; description "Serial PPP device for a cross-connect"; } enum "ppp-tcc" { value 5; description "Serial PPP device for a translational cross-connect"; } enum "ether-vpls-ppp" { value 6; description "Ethernet VPLS over PPP (bridging) device"; } enum "frame-relay" { value 7; description "Frame Relay encapsulation"; } enum "frame-relay-ccc" { value 8; description "Frame Relay for cross-connect"; } enum "frame-relay-tcc" { value 9; description "Frame Relay for translational cross-connect"; } enum "extended-frame-relay-ccc" { value 10; description "Any Frame Relay DLCI for cross-connect"; } enum "extended-frame-relay-tcc" { value 11; description "Any Frame Relay DLCI for translational cross-connect"; } enum "flexible-frame-relay" { value 12; description "Multiple Frame Relay encapsulations"; } enum "frame-relay-port-ccc" { value 13; description "Frame Relay port encapsulation for a cross-connect"; } enum "frame-relay-ether-type" { value 14; description "Cisco-compatible Frame Relay encapsulation"; } enum "frame-relay-ether-type-tcc" { value 15; description "Cisco-compatible Frame Relay encapsulation for translational cross-connect"; } enum "extended-frame-relay-ether-type-tcc" { value 16; description "Cisco-compatible Frame Relay encapsulation any DLCI for translational cross-connect"; } enum "cisco-hdlc" { value 17; description "Cisco-compatible HDLC framing"; } enum "cisco-hdlc-ccc" { value 18; description "Cisco-compatible HDLC framing for a cross-connect"; } enum "cisco-hdlc-tcc" { value 19; description "Cisco-compatible HDLC framing for a translational cross-connect"; } enum "vlan-ccc" { value 20; description "802.1q tagging for a cross-connect"; } enum "extended-vlan-ccc" { value 21; description "Nonstandard TPID tagging for a cross-connect"; } enum "ethernet-ccc" { value 22; description "Ethernet cross-connect"; } enum "flexible-ethernet-services" { value 23; description "Allows per-unit Ethernet encapsulation configuration"; } enum "smds-dxi" { value 24; description "SMDS DXI framing"; } enum "atm-pvc" { value 25; description "ATM permanent virtual circuits"; } enum "atm-ccc-cell-relay" { value 26; description "ATM cell relay encapsulation for cross-connect"; } enum "ethernet-over-atm" { value 27; description "Ethernet over ATM encapsulation"; } enum "ethernet-tcc" { value 28; description "Ethernet translational cross-connect"; } enum "extended-vlan-tcc" { value 29; description "802.1q tagging for a translational cross-connect"; } enum "multilink-frame-relay-uni-nni" { value 30; description "Multilink Frame Relay UNI NNI (FRF.16) encapsulation"; } enum "satop" { junos:must "((!(".. t1-options framing") && !(".. e1-options framing")))"; junos:must-message "SAToP & Framing cannot be configured on same interface"; junos:must "(!(".. ima-link-options"))"; junos:must-message "SAToP & IMA cannot be configured on same interface"; value 31; description "Structure-Agnostic TDM over Packet encapsulation"; } enum "cesopsn" { value 32; description "Structure-Agnostic TDM over Packet encapsulation"; } enum "ima" { junos:must "(!(".. satop-options"))"; junos:must-message "SAToP & IMA cannot be configured on same interface"; value 33; description "Inverse Multiplexing for ATM"; } enum "ethernet-vpls" { value 34; description "Ethernet virtual private LAN service"; } enum "ethernet-bridge" { value 35; description "Ethernet layer-2 bridging"; } enum "vlan-vpls" { value 36; description "VLAN virtual private LAN service"; } enum "vlan-vci-ccc" { junos:must "("interfaces ${interface} vlan-vci-tagging")"; junos:must-message "valid only with vlan-vci-tagging mode"; value 37; description "CCC for VLAN Q-in-Q and ATM VPI/VCI interworking"; } enum "extended-vlan-vpls" { value 38; description "Extended VLAN virtual private LAN service"; } enum "extended-vlan-bridge" { value 39; description "VLAN layer-2 bridging"; } enum "multilink-ppp" { value 40; description "Multilink PPP"; } enum "generic-services" { value 41; description "Generic services"; } } description "Physical link-layer encapsulation"; } container esi { description "ESI configuration of multi-homed interface"; uses apply-advanced; container auto-derive { description "Auto-derive ESI value for the interface"; uses apply-advanced; choice esitype { leaf lacp { type empty; description "Auto-derive ESI from lacp"; } } // choice esitype } // container auto-derive leaf identifier { junos:must "(!(".. .. gigether-options 802.3ad"))"; junos:must-message "ESI cannot be configured for member link interfaces"; junos:must "(!(any "interfaces <*> unit <*> esi $$"))"; junos:must-message "ESI value must be unique across all IFDs and IFLs"; junos:must "(unique "interfaces <*> esi $$")"; junos:must-message "ESI value must be unique across all IFDs and IFLs"; junos:must "(!("interfaces ${interface} esi auto-derive"))"; junos:must-message "ESI identifier can not be configured when auto-derive is configured under IFD"; type jt:esi; description "ESI value for the interface"; } choice mode { leaf single-active { type empty; description "Single-active mode"; } leaf all-active { type empty; description "All-active mode"; } } // choice mode container df-election-granularity { presence "enable df-election-granularity"; description "DF Election Granularity Selection "; uses apply-advanced; choice mode { container per-esi { presence "enable per-esi"; description "DF Election Granularity Per Esi"; uses apply-advanced; leaf lacp-oos-on-ndf { junos:must "(!("interfaces ${interface} esi all-active"))"; junos:must-message "lacp-oos-on-ndf can be configured only with single-active"; junos:must "("interfaces ${interface} aggregated-ether-options lacp")"; junos:must-message "LACP must be enbled for lacp-oos-on-ndf"; type empty; description "Lacp Oos"; } } // container per-esi leaf per-esi-vlan { type empty; description "Per Esi Vlan"; } } // choice mode } // container df-election-granularity container df-election-type { presence "enable df-election-type"; description "DF Election Type"; uses apply-advanced; choice pref_choice { container preference { presence "enable preference"; description "Preference based DF election"; uses apply-advanced; leaf value { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 65535"; } } default "32767"; description "Preference value for EVPN Multihoming DF election"; } } // container preference } // choice pref_choice choice mod_choice { container mod { junos:must "(!(".. preference"))"; junos:must-message "preference must not be configured"; presence "enable mod"; description "MOD based DF election"; } // container mod } // choice mod_choice } // container df-election-type leaf source-bmac { junos:must "(!(any "routing-instances <*> service-groups <*> pbb-service-options source-bmac $$"))"; junos:must-message "Source B-MAC must be unique across all routing-instances"; junos:must "(!(any "interfaces <*> unit <*> esi source-bmac $$"))"; junos:must-message "Source B-MAC must be unique under all IFDs and IFLs"; junos:must "(unique "interfaces <*> esi source-bmac $$")"; junos:must-message "Source B-MAC must be unique under all IFDs and IFLs"; type jt:mac-unicast; description "Unicast Source B-MAC address per ESI for PBB-EVPN"; } } // container esi container framing { description "Frame type"; uses apply-advanced; choice frame { leaf lan-phy { type empty; description "802.3ae 10-Gbps LAN-mode interface"; } leaf wan-phy { type empty; description "802.3ae 10-Gbps WAN-mode interface"; } leaf sonet { type empty; description "SONET framing"; } leaf sdh { type empty; description "SDH framing"; } } // choice frame } // container framing container lmi { description "Local Management Interface settings"; uses apply-advanced; leaf n391dte { junos:must "(!((".. .. dce" || ".. .. loose-ncp")))"; junos:must-message "LMI DTE options not valid for DCE interface"; type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 255"; } } description "DTE full status polling interval"; } leaf n392dce { junos:must "((".. .. dce" || ".. .. loose-ncp"))"; junos:must-message "LMI DCE options not valid for DTE interface"; type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 10"; } } description "DCE error threshold"; } leaf n392dte { junos:must "(!((".. .. dce" || ".. .. loose-ncp")))"; junos:must-message "LMI DTE options not valid for DCE interface"; type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 10"; } } description "DTE error threshold"; } leaf n393dce { junos:must "((".. .. dce" || ".. .. loose-ncp"))"; junos:must-message "LMI DCE options not valid for DTE interface."; type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 10"; } } description "DCE monitored event count"; } leaf n393dte { junos:must "(!((".. .. dce" || ".. .. loose-ncp")))"; junos:must-message "LMI DTE options not valid for DCE interface"; type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 10"; } } description "DTE monitored event count"; } leaf t391dte { junos:must "(!((".. .. dce" || ".. .. loose-ncp")))"; junos:must-message "LMI DTE options not valid for DCE interface"; type union { type string { pattern "<.*>|$.*"; } type uint16 { range "5 .. 30"; } } units "seconds"; description "DTE polling timer"; } leaf t392dce { junos:must "((".. .. dce" || ".. .. loose-ncp"))"; junos:must-message "LMI DCE options not valid for DTE interface."; type union { type string { pattern "<.*>|$.*"; } type uint16 { range "5 .. 30"; } } units "seconds"; description "DCE polling verification timer"; } leaf lmi-type { type enumeration { enum "ansi" { value 0; description "Use ANSI Annex D LMI"; } enum "itu" { value 1; description "Use ITU Q933a Annex A LMI"; } enum "c-lmi" { value 2; description "Use Consortium LMI"; } } description "Specify the Frame Relay LMI type"; } } // container lmi container mlfr-uni-nni-bundle-options { description "Multilink Frame Relay UNI NNI (FRF.16) management settings"; uses apply-advanced; container cisco-interoperability { description "FRF.16 Cisco interoperability settings"; uses apply-advanced; leaf send-lip-remove-link-for-link-reject { type empty; description "Send Link Integrity Protocol remove link on receiving add-link rejection"; } } // container cisco-interoperability leaf mrru { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1500 .. 4500"; } } units "bytes"; description "Maximum received reconstructed unit"; } leaf yellow-differential-delay { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "3 .. 2000"; } } units "milliseconds"; description "Yellow differential delay among bundle links to give warning"; } leaf red-differential-delay { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "5 .. 2000"; } } units "milliseconds"; description "Red differential delay among bundle links to take action"; } leaf action-red-differential-delay { type enumeration { enum "remove-link" { value 0; description "Remove bundle link from service when exceeding red limit"; } enum "disable-tx" { value 1; description "Disable transfer of bundle link when exceeding red limit"; } } description "Type of actions when differential delay exceeds red limit"; } leaf fragment-threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "64 .. 16320"; } } units "bytes"; description "Fragmentation threshold"; } leaf drop-timeout { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "0 .. 2000"; } } units "milliseconds"; description "Drop timeout"; } leaf link-layer-overhead { type jt:unsigned-float; description "Link layer bit stuffing overhead (0.0 .. 50.0 percent)"; } leaf lmi-type { type enumeration { enum "ansi" { value 0; description "Use ANSI Annex D LMI"; } enum "itu" { value 1; description "Use ITU Q933a Annex A LMI"; } enum "c-lmi" { value 2; description "Use Consortium LMI"; } } description "Specify the multilink Frame Relay UNI NNI LMI type"; } leaf minimum-links { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 8"; } } description "Minimum number of links to sustain the bundle"; } leaf hello-timer { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "5 .. 180"; } } description "LIP hello timer"; } leaf acknowledge-timer { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 10"; } } description "LIP ack timer"; } leaf acknowledge-retries { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 5"; } } description "LIP ack retry times"; } leaf n391 { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 255"; } } description "Multilink Frame Relay UNI NNI full status polling counter"; } leaf n392 { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 10"; } } description "Multilink Frame Relay UNI NNI LMI error threshold"; } leaf n393 { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 10"; } } description "Multilink Frame Relay UNI NNI LMI monitored event count"; } leaf t391 { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "5 .. 30"; } } description "Multilink Frame Relay UNI NNI link integrity verify polling timer"; } leaf t392 { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "5 .. 30"; } } description "Multilink Frame Relay UNI NNI polling verification timer"; } } // container mlfr-uni-nni-bundle-options leaf mac { type jt:mac-unicast; description "Hardware MAC address"; } container receive-bucket { description "Set receive bucket parameters"; uses dcd_rx_bucket_config; } // container receive-bucket container transmit-bucket { description "Set transmit bucket parameters"; uses dcd_tx_bucket_config; } // container transmit-bucket leaf shared-interface { type empty; description "Enable shared interface on the interface"; } container sonet-options { junos:must "((!("interfaces ${interface} container-options") || ("interfaces ${interface} container-options container-type" || "interfaces ${interface} container-options allow-configuration-override")))"; junos:must-message "sonet-options cannot be configured without allow-configuration-override"; description "SONET interface-specific options"; uses sonet_options_type; } // container sonet-options container logical-tunnel-options { description "Logical Tunnel interface-specific options"; uses apply-advanced; container link-protection { presence "enable link-protection"; description "Enable link protection mode"; uses apply-advanced; leaf revertive { junos:must "(!("interfaces ${interface} logical-tunnel-options link-protection non-revertive"))"; junos:must-message "link-protection revertive and non-revertive are mutually exclusive"; junos:must "(any "interfaces ${interface} redundancy-group member-interface <*> active")"; junos:must-message "link-protection mode can be configured only when link-protection is enabled"; type empty; description "Revert back (Default mode) from active backup link to primary, if primary is UP"; } leaf non-revertive { junos:must "(!("interfaces ${interface} logical-tunnel-options link-protection revertive"))"; junos:must-message "link-protection revertive and non-revertive are mutually exclusive"; junos:must "(any "interfaces ${interface} redundancy-group member-interface <*> active")"; junos:must-message "link-protection mode can be configured only when link-protection is enabled"; type empty; description "Do not revert back from active backup link to primary, if primary is UP"; } } // container link-protection leaf per-unit-mac-disable { type empty; description "Disable the creation of per unit mac address on LT IFLs for VPLS/CCC encaps"; } } // container logical-tunnel-options container aggregated-sonet-options { description "Aggregated SONET interface-specific options"; uses apply-advanced; leaf minimum-links { type union { type string { pattern "<.*>|$.*"; } type uint16; } description "Minimum number of aggregated links"; } leaf link-speed { type enumeration { enum "oc3" { value 0; description "Links are OC-3c or STM-1c"; } enum "oc12" { value 1; description "Links are OC-12c or STM-4c"; } enum "oc48" { value 2; description "Links are OC-48c or STM-16c"; } enum "oc192" { value 3; description "Links are OC-192c or STM-64c"; } enum "oc768" { value 4; description "Links are OC-768c or STM-256c"; } enum "mixed" { value 5; description "Links are various speeds"; } } description "Aggregated links speed"; } leaf minimum-bandwidth { type union { type string { pattern "<.*>|$.*"; } type uint64 { range "0 .. 159232000000"; } } units "bps"; description "Minimum bandwidth necessary to sustain bundle"; } } // container aggregated-sonet-options container atm-options { junos:must "((!("interfaces ${interface} container-options") || ("interfaces ${interface} container-options container-type" || !("interfaces ${interface} container-options container-list"))))"; junos:must-message "atm-options cannot be configured on container children"; description "ATM interface-specific options"; uses apply-advanced; leaf pic-type { type enumeration { enum "atm-ce" { value 0; description "CE PIC"; } enum "atm2" { value 1; description "ATM II IQ PIC"; } enum "atm1" { junos:must "(!("interfaces ${interface} container-options"))"; junos:must-message "Only ATM-II pics are supported as container member link"; value 2; description "ATM I PIC"; } } description "Type of ATM PIC (ATM I, ATM II or ATM CE)"; } leaf cell-bundle-size { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 176"; } } units "cells"; description "L2 circuit cell bundle size"; } leaf cell-bundle-timeout { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 512"; } } units "microseconds"; description "L2 circuit cell bundle timeout"; } leaf plp-to-clp { type empty; description "Enable ATM2 PLP to CLP copy"; } leaf use-null-cw { type empty; description "Always insert/strip null control words with cell-relay"; } container promiscuous-mode { presence "enable promiscuous-mode"; description "Set ATM interface to promiscuous mode"; uses apply-advanced; list vpi { key "name"; ordered-by user; description "Open this VPI in promiscuous mode"; leaf name { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Virtual path index"; } } // list vpi } // container promiscuous-mode list vpi { key "name"; ordered-by user; description "Define a virtual path"; leaf name { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Virtual path index"; } uses apply-advanced; leaf maximum-vcs { junos:must "(!("interfaces ${interface} container-options"))"; junos:must-message "Only ATM-II pics are supported as container member link"; type union { type uint32; type string { pattern "<.*>|$.*"; } } description "Maximum number of virtual circuits on this VP"; } container shaping { description "Virtual path traffic-shaping options"; uses dcd_shaping_config; } // container shaping container oam-period { description "F4 OAM cell period"; choice oam_period_choices { leaf oam-period { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 900"; } } units "seconds"; description "F4 OAM cell period"; } container disable { presence "enable disable"; description "Disable F4 OAM loopback"; } // container disable } // choice oam_period_choices } // container oam-period container oam-liveness { description "F4 OAM virtual path liveness parameters"; uses apply-advanced; leaf up-count { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 255"; } } description "Number of F4 OAM cells to consider VP up"; } leaf down-count { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 255"; } } description "Number of F4 OAM cells to consider VP down"; } } // container oam-liveness } // list vpi container ilmi { presence "enable ilmi"; description "Enable Interim Local Management Interface"; uses apply-advanced; } // container ilmi list linear-red-profiles { key "name"; ordered-by user; description "ATM2 CoS virtual circuit drop profiles"; leaf name { type string { junos:posix-pattern "^.{1,64}$"; junos:pattern-message "Must be string of 64 characters or less"; } description "Linear RED profile name"; } leaf queue-depth { type string; units "cells"; description "Maximum queue depth"; } leaf high-plp-threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 100"; } } description "Fill level percentage when linear RED is applied for high PLP"; } leaf low-plp-threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 100"; } } description "Fill level percentage when linear RED is applied for low PLP"; } leaf high-plp-max-threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 100"; } } description "Fill level percentage with 100 percent packet drop for high PLP"; } leaf low-plp-max-threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 100"; } } description "Fill level percentage with 100 percent packet drop for low PLP"; } } // list linear-red-profiles list scheduler-maps { key "name"; ordered-by user; description "ATM2 CoS parameters assigned to forwarding classes"; leaf name { type string { junos:posix-pattern "^((default)|(.{1,64}))$"; junos:pattern-message "Must be a string of 64 characters or less and not 'default'"; } description "ATM2 CoS scheduler map name"; } uses apply-advanced; leaf vc-cos-mode { type enumeration { enum "strict" { value 0; description "Always schedule high priority queue first"; } enum "alternate" { value 1; description "Every other packet from high priority queue (default)"; } } description "ATM2 virtual circuit CoS mode"; } list forwarding-class { key "name"; ordered-by user; description "Scheduling parameters associated with forwarding class"; leaf name { type string { junos:posix-pattern "^.{1,64}$"; junos:pattern-message "Must be string of 64 characters or less"; } description "Forwarding class name"; } uses apply-advanced; leaf priority { type enumeration { enum "low" { value 0; description "Low priority queuing"; } enum "high" { value 1; description "High priority queuing"; } } description "Queuing priority assigned to forwarding class"; } container transmit-weight { description "Transmit weight"; choice weight-method { leaf percent { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "5 .. 100"; } } description "Transmit weight as percentage"; } leaf cells { type string; description "Transmit weight by cells count"; } } // choice weight-method } // container transmit-weight choice drop-profile-method { container epd-threshold { description "Early packet discard threshold for ATM2"; uses epd_threshold_config; } // container epd-threshold leaf linear-red-profile { type string; description "Linear RED profile profile name"; } } // choice drop-profile-method } // list forwarding-class } // list scheduler-maps container mpls { description "MPLS options"; uses mpls_ifd_options; } // container mpls choice payload-scrambler-choice { leaf payload-scrambler { type empty; description "Enable payload scrambling"; } leaf no-payload-scrambler { type empty; description "Don't enable payload scrambling"; } } // choice payload-scrambler-choice } // container atm-options container multiservice-options { description "Multiservice interface-specific options"; uses apply-advanced; choice syslog-choice { leaf syslog { type empty; description "Enable system logging on this interface"; } leaf no-syslog { type empty; description "Don't enable system logging on this interface"; } } // choice syslog-choice choice core-dump-choice { leaf core-dump { type empty; description "Enable core dumping on this interface"; } leaf no-core-dump { type empty; description "Don't enable core dumping on this interface"; } } // choice core-dump-choice choice dump-on-flow-control-choice { leaf dump-on-flow-control { type empty; status deprecated; description "Enable dumping for this interface on prolonged flow-control"; } leaf no-dump-on-flow-control { type empty; status deprecated; description "Don't enable dumping for this interface on prolonged flow-control"; } } // choice dump-on-flow-control-choice choice reset-on-flow-control-choice { leaf reset-on-flow-control { type empty; status deprecated; description "Enable resetting this interface on prolonged flow-control"; } leaf no-reset-on-flow-control { type empty; status deprecated; description "Don't enable resetting this interface on prolonged flow-control"; } } // choice reset-on-flow-control-choice container flow-control-options { description "Flow control configuration"; uses apply-advanced; leaf dump-on-flow-control { junos:must "(!(".. up-on-flow-control"))"; junos:must-message "Option not valid with up-on-flow-control"; junos:must "(!(".. down-on-flow-control"))"; junos:must-message "Option not valid with down-on-flow-control"; junos:must "(!(".. reset-on-flow-control"))"; junos:must-message "Option not valid with reset-on-flow-control"; type empty; description "Cause core dump during prolonged flow-control"; } leaf reset-on-flow-control { junos:must "(!(".. up-on-flow-control"))"; junos:must-message "Option not valid with up-on-flow-control"; junos:must "(!(".. down-on-flow-control"))"; junos:must-message "Option not valid with down-on-flow-control"; junos:must "(!(".. dump-on-flow-control"))"; junos:must-message "Option not valid with dump-on-flow-control"; type empty; description "Reset interface during prolonged flow-control"; } leaf down-on-flow-control { junos:must "(!(".. up-on-flow-control"))"; junos:must-message "Option not valid with up-on-flow-control"; junos:must "(!(".. reset-on-flow-control"))"; junos:must-message "Option not valid with reset-on-flow-control"; junos:must "(!(".. dump-on-flow-control"))"; junos:must-message "Option not valid with dump-on-flow-control"; type empty; description "Bring interface down during prolonged flow-control"; } leaf up-on-flow-control { junos:must "(!(".. down-on-flow-control"))"; junos:must-message "Option not valid with down-on-flow-control"; junos:must "(!(".. reset-on-flow-control"))"; junos:must-message "Option not valid with reset-on-flow-control"; junos:must "(!(".. dump-on-flow-control"))"; junos:must-message "Option not valid with dump-on-flow-control"; type empty; description "Keep interface up during prolonged flow-control"; } } // container flow-control-options } // container multiservice-options container ggsn-options { description "GGSN interface-specific options"; uses apply-advanced; choice syslog-choice { leaf syslog { type empty; description "Enable system logging on this interface"; } leaf no-syslog { type empty; description "Don't enable system logging on this interface"; } } // choice syslog-choice choice core-dump-choice { leaf core-dump { type empty; description "Enable core dumping on this interface"; } leaf no-core-dump { type empty; description "Don't enable core dumping on this interface"; } } // choice core-dump-choice } // container ggsn-options container ppp-options { junos:must "((".. encapsulation ppp" || (".. encapsulation ether-vpls-ppp" || !(".. encapsulation"))))"; junos:must-message "invalid encapsulation"; description "Point-to-Point Protocol (PPP) interface-specific options"; uses ppp_options_type; } // container ppp-options container redundancy-options { description "Redundancy options"; uses apply-advanced; leaf primary { type union { type jt:interface-device; type string { pattern "<.*>|$.*"; } } description "Specify the primary interface"; } leaf secondary { type union { type jt:interface-device; type string { pattern "<.*>|$.*"; } } description "Specify the secondary interface"; } container redundancy-peer { description "Specify information for peer"; uses apply-advanced; leaf ipaddress { type jt:ipv4addr; description "Specify the IP address"; } } // container redundancy-peer container redundancy-local { description "Specify information for the local peer"; uses apply-advanced; leaf data-address { type jt:ipv4addr; description "Specify the HA local data IP address"; } } // container redundancy-local leaf routing-instance { junos:must "(("routing-instances $$" || any "tenants <*> routing-instances $$"))"; junos:must-message "referenced routing-instance must be defined"; type string; description "Specify routing-instance for the HA traffic"; } leaf replication-threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "60 .. 3600"; } } units "seconds"; default "180"; description "Duration for which flow should remain active for replication"; } container replication-options { description "Specify state replication attributes"; uses apply-advanced; leaf mtu { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1500 .. 8000"; } } default "1500"; description "Specify the maximal packet size for replicated data"; } } // container replication-options container replicate-services { description "Replicate services state from active to backup"; uses apply-advanced; leaf pgcp { type empty; description "Replicate the PGCP service state"; } } // container replicate-services } // container redundancy-options container lsq-failure-options { description "Link services queuing failure options"; uses apply-advanced; list trigger-link-failure { key "name"; ordered-by user; description "Link on which to trigger failure"; leaf name { type union { type jt:interface-device; type string { pattern "<.*>|$.*"; } } description "Interface name"; } uses apply-advanced; } // list trigger-link-failure choice no-termination-request-choice { leaf no-termination-request { type empty; description "Do not send PPP termination requests"; } leaf no-no-termination-request { type empty; description "Don't do not send PPP termination requests"; } } // choice no-termination-request-choice } // container lsq-failure-options container services-options { description "Services interface-specific options"; uses apply-advanced; container syslog { description "Define system log parameters"; uses log-object; } // container syslog container jflow-log { description "Define Jflow-log parameters."; uses apply-advanced; leaf message-rate-limit { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 2147483647"; } } units "messages per second"; description "Maximum jflow-log NAT error events allowed per second from this interface"; } } // container jflow-log container deterministic-nat-configuration-log-interval { presence "enable deterministic-nat-configuration-log-interval"; description "Define Deterministic NAT parameters"; uses apply-advanced; leaf interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1800 .. 86400"; } } units "seconds"; description "Interval in which deterministic NAT logs are generated"; } } // container deterministic-nat-configuration-log-interval leaf open-timeout { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "4 .. 300"; } } units "seconds"; description "Timeout period for TCP session establishment"; } leaf close-timeout { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "2 .. 300"; } } units "seconds"; description "Timeout period for TCP session tear-down"; } leaf inactivity-timeout { type union { type uint32; type string { pattern "<.*>|$.*"; } } units "seconds"; description "Inactivity timeout period for established sessions (4..86400)"; } leaf inactivity-tcp-timeout { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "4 .. 86400"; } } units "seconds"; description "Inactivity timeout period for TCP established sessions"; } leaf inactivity-asymm-tcp-timeout { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "4 .. 86400"; } } units "seconds"; description "Inactivity timeout period for asymmetric TCP established sessions"; } leaf inactivity-non-tcp-timeout { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "4 .. 86400"; } } units "seconds"; description "Inactivity timeout period for non-TCP established sessions"; } leaf session-timeout { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "4 .. 86400"; } } units "seconds"; description "Session timeout period for established sessions"; } leaf disable-global-timeout-override { type empty; description "Disallow overriding global inactivity or session timeout"; } leaf tcp-tickles { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "0 .. 30"; } } default "4"; description "Number of TCP keep-alive packets to be sent for bi-directional TCP flows"; } leaf fragment-limit { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "1 .. 250"; } } default "250"; description "Maximum number of fragments allowed for a packet"; } leaf reassembly-timeout { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "1 .. 60"; } } units "seconds"; default "4"; description "Re-assembly timeout (seconds) for fragments of a packet"; } leaf cgn-pic { type empty; description "PIC will be used for Carrier Grade NAT configuration only"; } leaf pba-interim-logging-interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 86400"; } } units "seconds"; default "0"; description "Interim logging interval in seconds"; } container session-limit { presence "enable session-limit"; description "Session limit"; uses apply-advanced; leaf maximum { type string; description "Maximum number of sessions allowed simultaneously"; } leaf rate { type string; description "Maximum number of new sessions allowed per second"; } leaf cpu-load-threshold { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "1 .. 100"; } } units "percent"; description "CPU limit in percentage for auto-tuning of session rate"; } } // container session-limit leaf enable-subscriber-analysis { junos:must "(!(".. disable-subscriber-analysis"))"; junos:must-message "can not set with enable-subscriber-analysis"; type empty; description "Enable subscriber analysis on the interface"; } leaf disable-subscriber-analysis { junos:must "(!(".. enable-subscriber-analysis"))"; junos:must-message "can not set with disable-subscriber-analysis"; type empty; description "Disable subscriber analysis on the interface"; } leaf disable-usp-tracing { type empty; description "Disable usp tracing on this pic"; } leaf disable-drop-flows { type empty; description "Disable drop flows on this pic"; } container ignore-errors { presence "enable ignore-errors"; description "Ignore anomalies or errors"; leaf tcp { type empty; description "TCP protocol errors"; } leaf alg { type empty; description "ALG anomalies or errors"; } } // container ignore-errors container capture { description "Packet capture for SFW and NAT on the Services PIC"; uses apply-advanced; leaf capture-size { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 344000"; } } description "The number of packets to store"; } leaf pkt-size { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "64 .. 15000"; } } description "Number of bytes to be saved from each packet"; } leaf logs-per-packet { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "0 .. 500"; } } description "The number of trace messages stored for each packet"; } leaf max-log-line-size { type union { type uint8; type string { pattern "<.*>|$.*"; } } description "The maximum length of a stored trace message"; } container filter { presence "enable filter"; description "Filtering options for the packet capture"; uses apply-advanced; container source-ip { description "Filter based on source-ip (and wildcard)"; leaf ip { type jt:ipaddr; description "Source IP"; } leaf wildcard { type jt:ipaddr; description "Source IP wildcard"; } } // container source-ip container dest-ip { description "Filter based on dest-ip (and wildcard)"; leaf ip { type jt:ipaddr; description "Dest IP"; } leaf wildcard { type jt:ipaddr; description "Dest IP wildcard"; } } // container dest-ip container sw-sip { description "Filter based on source softwire ip (and wildcard)"; leaf ip { type jt:ipv6addr; description "Source softwire IP"; } leaf wildcard { type jt:ipv6addr; description "Source IP wildcard"; } } // container sw-sip container sw-dip { description "Filter based on destination softwire ip (and wildcard)"; leaf ip { type jt:ipaddr; description "Destination softwire IP"; } leaf wildcard { type jt:ipaddr; description "Destination IP wildcard"; } } // container sw-dip container sport-range { description "Filter based on source port"; leaf low { type union { type uint16; type string { pattern "<.*>|$.*"; } } description "Source port range start"; } leaf high { type union { type uint16; type string { pattern "<.*>|$.*"; } } description "Source port range end"; } } // container sport-range container dport-range { description "Filter based on destination port"; leaf low { type union { type uint16; type string { pattern "<.*>|$.*"; } } description "Destination port range start"; } leaf high { type union { type uint16; type string { pattern "<.*>|$.*"; } } description "Destination port range end"; } } // container dport-range leaf proto { type enumeration { enum "icmp" { value 0; } enum "tcp" { value 1; } enum "udp" { value 2; } } description "Filter based on L4 protocol"; } } // container filter } // container capture container flow { description "Define flow parameters"; uses apply-advanced; container traceoptions { description "Trace options for flow services"; } // container traceoptions } // container flow leaf fpc-pic-information { type empty; description "Include FPC and PIC slot number in the syslogs"; } leaf utc-timestamp { type empty; description "Use UTC time for security log timestamps"; } leaf syslog-local-system-timestamp { type empty; description "Use local system time for services syslog timestamp"; } } // container services-options container t3-options { junos:must "((!("interfaces ${interface} container-options") || ("interfaces ${interface} container-options container-type" || "interfaces ${interface} container-options allow-configuration-override")))"; junos:must-message "t1-options cannot be configured without allow-configuration-override"; description "T3 interface-specific options"; uses apply-advanced; leaf loopback { type enumeration { enum "local" { value 0; description "Local loopback"; } enum "remote" { value 1; description "Remote loopback"; } enum "payload" { value 2; description "Payload loopback"; } } description "Loopback mode"; } choice long-buildout-choice { leaf long-buildout { type empty; description "Set hardware to drive line longer than 255 feet"; } leaf no-long-buildout { type empty; description "Don't set hardware to drive line longer than 255 feet"; } } // choice long-buildout-choice choice loop-timing-choice { leaf loop-timing { type empty; description "Set loop timing for T3"; } leaf no-loop-timing { type empty; description "Don't set loop timing for T3"; } } // choice loop-timing-choice container compatibility-mode { description "Set CSU compatibility mode"; choice vendor { container larscom { junos:must "(!(".. .. unframed"))"; junos:must-message "unframed and larscom cannot coexist"; presence "enable larscom"; description "Compatible with Larscom CSU"; leaf subrate { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 14"; } } description "Set subrate value"; } } // container larscom container verilink { junos:must "(!(".. .. unframed"))"; junos:must-message "unframed and verilink cannot coexist"; presence "enable verilink"; description "Compatible with Verilink CSU (not on 2/4-port T3 PIC)"; leaf subrate { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 28"; } } description "Set subrate value"; } } // container verilink container adtran { junos:must "(!(".. .. unframed"))"; junos:must-message "unframed and adtran cannot coexist"; presence "enable adtran"; description "Compatible with Adtran CSU (not on 2/4-port T3 PIC)"; leaf subrate { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 588"; } } description "Set subrate value"; } } // container adtran container kentrox { presence "enable kentrox"; description "Compatible with Kentrox CSU"; leaf subrate { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 69"; } } description "Set subrate value (not on 2/4-port T3 PIC)"; } } // container kentrox container digital-link { junos:must "(!(".. .. unframed"))"; junos:must-message "unframed and digital-link cannot coexist"; presence "enable digital-link"; description "Compatible with Digital Link CSU"; leaf subrate { type enumeration { enum "301Kb" { value 0; description "301 Kbps"; } enum "601Kb" { value 1; description "601 Kbps"; } enum "902Kb" { value 2; description "902 Kbps"; } enum "1.2Mb" { value 3; description "1.2 Mbps"; } enum "1.5Mb" { value 4; description "1.5 Mbps"; } enum "1.8Mb" { value 5; description "1.8 Mbps"; } enum "2.1Mb" { value 6; description "2.1 Mbps"; } enum "2.4Mb" { value 7; description "2.4 Mbps"; } enum "2.7Mb" { value 8; description "2.7 Mbps"; } enum "3.0Mb" { value 9; description "3.0 Mbps"; } enum "3.3Mb" { value 10; description "3.3 Mbps"; } enum "3.6Mb" { value 11; description "3.6 Mbps"; } enum "3.9Mb" { value 12; description "3.9 Mbps"; } enum "4.2Mb" { value 13; description "4.2 Mbps"; } enum "4.5Mb" { value 14; description "4.5 Mbps"; } enum "4.8Mb" { value 15; description "4.8 Mbps"; } enum "5.1Mb" { value 16; description "5.1 Mbps"; } enum "5.4Mb" { value 17; description "5.4 Mbps"; } enum "5.7Mb" { value 18; description "5.7 Mbps"; } enum "6.0Mb" { value 19; description "6.0 Mbps"; } enum "6.3Mb" { value 20; description "6.3 Mbps"; } enum "6.6Mb" { value 21; description "6.6 Mbps"; } enum "6.9Mb" { value 22; description "6.9 Mbps"; } enum "7.2Mb" { value 23; description "7.2 Mbps"; } enum "7.5Mb" { value 24; description "7.5 Mbps"; } enum "7.8Mb" { value 25; description "7.8 Mbps"; } enum "8.1Mb" { value 26; description "8.1 Mbps"; } enum "8.4Mb" { value 27; description "8.4 Mbps"; } enum "8.7Mb" { value 28; description "8.7 Mbps"; } enum "9.0Mb" { value 29; description "9.0 Mbps"; } enum "9.3Mb" { value 30; description "9.3 Mbps"; } enum "9.6Mb" { value 31; description "9.6 Mbps"; } enum "9.9Mb" { value 32; description "9.9 Mbps"; } enum "10.2Mb" { value 33; description "10.2 Mbps"; } enum "10.5Mb" { value 34; description "10.5 Mbps"; } enum "10.8Mb" { value 35; description "10.8 Mbps"; } enum "11.1Mb" { value 36; description "11.1 Mbps"; } enum "11.4Mb" { value 37; description "11.4 Mbps"; } enum "11.7Mb" { value 38; description "11.7 Mbps"; } enum "12.0Mb" { value 39; description "12.0 Mbps"; } enum "12.3Mb" { value 40; description "12.3 Mbps"; } enum "12.6Mb" { value 41; description "12.6 Mbps"; } enum "12.9Mb" { value 42; description "12.9 Mbps"; } enum "13.2Mb" { value 43; description "13.2 Mbps"; } enum "13.5Mb" { value 44; description "13.5 Mbps"; } enum "13.8Mb" { value 45; description "13.8 Mbps"; } enum "14.1Mb" { value 46; description "14.1 Mbps"; } enum "14.4Mb" { value 47; description "14.4 Mbps"; } enum "14.7Mb" { value 48; description "14.7 Mbps"; } enum "15.0Mb" { value 49; description "15.0 Mbps"; } enum "15.3Mb" { value 50; description "15.3 Mbps"; } enum "15.6Mb" { value 51; description "15.6 Mbps"; } enum "15.9Mb" { value 52; description "15.9 Mbps"; } enum "16.2Mb" { value 53; description "16.2 Mbps"; } enum "16.5Mb" { value 54; description "16.5 Mbps"; } enum "16.8Mb" { value 55; description "16.8 Mbps"; } enum "17.1Mb" { value 56; description "17.1 Mbps"; } enum "17.4Mb" { value 57; description "17.4 Mbps"; } enum "17.7Mb" { value 58; description "17.7 Mbps"; } enum "18.0Mb" { value 59; description "18.0 Mbps"; } enum "18.3Mb" { value 60; description "18.3 Mbps"; } enum "18.6Mb" { value 61; description "18.6 Mbps"; } enum "18.9Mb" { value 62; description "18.9 Mbps"; } enum "19.2Mb" { value 63; description "19.2 Mbps"; } enum "19.5Mb" { value 64; description "19.5 Mbps"; } enum "19.8Mb" { value 65; description "19.8 Mbps"; } enum "20.1Mb" { value 66; description "20.1 Mbps"; } enum "20.5Mb" { value 67; description "20.5 Mbps"; } enum "20.8Mb" { value 68; description "20.8 Mbps"; } enum "21.1Mb" { value 69; description "21.1 Mbps"; } enum "21.4Mb" { value 70; description "21.4 Mbps"; } enum "21.7Mb" { value 71; description "21.7 Mbps"; } enum "22.0Mb" { value 72; description "22.0 Mbps"; } enum "22.3Mb" { value 73; description "22.3 Mbps"; } enum "22.6Mb" { value 74; description "22.6 Mbps"; } enum "22.9Mb" { value 75; description "22.9 Mbps"; } enum "23.2Mb" { value 76; description "23.2 Mbps"; } enum "23.5Mb" { value 77; description "23.5 Mbps"; } enum "23.8Mb" { value 78; description "23.8 Mbps"; } enum "24.1Mb" { value 79; description "24.1 Mbps"; } enum "24.4Mb" { value 80; description "24.4 Mbps"; } enum "24.7Mb" { value 81; description "24.7 Mbps"; } enum "25.0Mb" { value 82; description "25.0 Mbps"; } enum "25.3Mb" { value 83; description "25.3 Mbps"; } enum "25.6Mb" { value 84; description "25.6 Mbps"; } enum "25.9Mb" { value 85; description "25.9 Mbps"; } enum "26.2Mb" { value 86; description "26.2 Mbps"; } enum "26.5Mb" { value 87; description "26.5 Mbps"; } enum "26.8Mb" { value 88; description "26.8 Mbps"; } enum "27.1Mb" { value 89; description "27.1 Mbps"; } enum "27.4Mb" { value 90; description "27.4 Mbps"; } enum "27.7Mb" { value 91; description "27.7 Mbps"; } enum "28.0Mb" { value 92; description "28.0 Mbps"; } enum "28.3Mb" { value 93; description "28.3 Mbps"; } enum "28.6Mb" { value 94; description "28.6 Mbps"; } enum "28.9Mb" { value 95; description "28.9 Mbps"; } enum "29.2Mb" { value 96; description "29.2 Mbps"; } enum "29.5Mb" { value 97; description "29.5 Mbps"; } enum "29.8Mb" { value 98; description "29.8 Mbps"; } enum "30.1Mb" { value 99; description "30.1 Mbps"; } enum "30.4Mb" { value 100; description "30.4 Mbps"; } enum "30.7Mb" { value 101; description "30.7 Mbps"; } enum "31.0Mb" { value 102; description "31.0 Mbps"; } enum "31.3Mb" { value 103; description "31.3 Mbps"; } enum "31.6Mb" { value 104; description "31.6 Mbps"; } enum "31.9Mb" { value 105; description "31.9 Mbps"; } enum "32.2Mb" { value 106; description "32.2 Mbps"; } enum "32.5Mb" { value 107; description "32.5 Mbps"; } enum "32.8Mb" { value 108; description "32.8 Mbps"; } enum "33.1Mb" { value 109; description "33.1 Mbps"; } enum "33.4Mb" { value 110; description "33.4 Mbps"; } enum "33.7Mb" { value 111; description "33.7 Mbps"; } enum "34.0Mb" { value 112; description "34.0 Mbps"; } enum "34.3Mb" { value 113; description "34.3 Mbps"; } enum "34.6Mb" { value 114; description "34.6 Mbps"; } enum "34.9Mb" { value 115; description "34.9 Mbps"; } enum "35.2Mb" { value 116; description "35.2 Mbps"; } enum "35.5Mb" { value 117; description "35.5 Mbps"; } enum "35.8Mb" { value 118; description "35.8 Mbps"; } enum "36.1Mb" { value 119; description "36.1 Mbps"; } enum "36.4Mb" { value 120; description "36.4 Mbps"; } enum "36.7Mb" { value 121; description "36.7 Mbps"; } enum "37.0Mb" { value 122; description "37.0 Mbps"; } enum "37.3Mb" { value 123; description "37.3 Mbps"; } enum "37.6Mb" { value 124; description "37.6 Mbps"; } enum "37.9Mb" { value 125; description "37.9 Mbps"; } enum "38.2Mb" { value 126; description "38.2 Mbps"; } enum "38.5Mb" { value 127; description "38.5 Mbps"; } enum "38.8Mb" { value 128; description "38.8 Mbps"; } enum "39.1Mb" { value 129; description "39.1 Mbps"; } enum "39.4Mb" { value 130; description "39.4 Mbps"; } enum "39.7Mb" { value 131; description "39.7 Mbps"; } enum "40.0Mb" { value 132; description "40.0 Mbps"; } enum "40.3Mb" { value 133; description "40.3 Mbps"; } enum "40.6Mb" { value 134; description "40.6 Mbps"; } enum "40.9Mb" { value 135; description "40.9 Mbps"; } enum "41.2Mb" { value 136; description "41.2 Mbps"; } enum "41.5Mb" { value 137; description "41.5 Mbps"; } enum "41.8Mb" { value 138; description "41.8 Mbps"; } enum "42.1Mb" { value 139; description "42.1 Mbps"; } enum "42.4Mb" { value 140; description "42.4 Mbps"; } enum "42.7Mb" { value 141; description "42.7 Mbps"; } enum "43.0Mb" { value 142; description "43.0 Mbps"; } enum "43.3Mb" { value 143; description "43.3 Mbps"; } enum "43.6Mb" { value 144; description "43.6 Mbps"; } enum "43.9Mb" { value 145; description "43.9 Mbps"; } enum "44.2Mb" { value 146; description "44.2 Mbps"; } } description "Set subrate value"; } } // container digital-link } // choice vendor } // container compatibility-mode choice payload-scrambler-choice { leaf payload-scrambler { type empty; description "Enable payload scrambling"; } leaf no-payload-scrambler { type empty; description "Don't enable payload scrambling"; } } // choice payload-scrambler-choice choice cbit-parity-choice { leaf cbit-parity { junos:must "(!(".. unframed"))"; junos:must-message "cbit-parity and unframed cannot coexist"; type empty; description "Enable C-bit parity mode"; } leaf no-cbit-parity { junos:must "(!(".. unframed"))"; junos:must-message "cbit-parity and unframed cannot coexist"; type empty; description "Don't enable C-bit parity mode"; } } // choice cbit-parity-choice leaf fcs { type enumeration { enum "32" { value 0; description "32-bit mode"; } enum "16" { value 1; description "16-bit mode"; } } description "Frame checksum"; } leaf idle-cycle-flag { type enumeration { enum "flags" { value 0; description "Transmit 0x7E in idle cycles"; } enum "ones" { value 1; description "Transmit 0xFF (all ones) in idle cycles"; } } description "Value to transmit in idle cycles"; } leaf start-end-flag { type enumeration { enum "shared" { value 0; description "Share start/end flags on transmit"; } enum "filler" { value 1; description "Send two idle cycles between start/end flags"; } } description "Set start/end flags on transmission"; } choice feac-loop-respond-choice { leaf feac-loop-respond { type empty; description "Respond to FEAC loop requests"; } leaf no-feac-loop-respond { type empty; description "Don't respond to FEAC loop requests"; } } // choice feac-loop-respond-choice leaf bert-algorithm { type enumeration { enum "pseudo-2e3" { value 0; description "Pattern is 2^3 - 1"; } enum "pseudo-2e4" { value 1; description "Pattern is 2^4 - 1"; } enum "pseudo-2e5" { value 2; description "Pattern is 2^5 - 1"; } enum "pseudo-2e6" { value 3; description "Pattern is 2^6 - 1"; } enum "pseudo-2e7" { value 4; description "Pattern is 2^7 - 1"; } enum "pseudo-2e9-o153" { value 5; description "Pattern is 2^9 - 1 (per O.153 standard)"; } enum "pseudo-2e10" { value 6; description "Pattern is 2^10 - 1"; } enum "pseudo-2e11-o152" { value 7; description "Pattern is 2^11 -1 (per O.152 standard)"; } enum "pseudo-2e15-o151" { value 8; description "Pattern is 2^15 - 1 (per O.151 standard)"; } enum "pseudo-2e17" { value 9; description "Pattern is 2^17 - 1"; } enum "pseudo-2e18" { value 10; description "Pattern is 2^18 - 1"; } enum "pseudo-2e20-o153" { value 11; description "Pattern is 2^20 - 1 (per O.153 standard)"; } enum "pseudo-2e20-o151" { value 12; description "Pattern is 2^20 - 1 (per O.151 standard)"; } enum "pseudo-2e21" { value 13; description "Pattern is 2^21 - 1"; } enum "pseudo-2e22" { value 14; description "Pattern is 2^22 - 1"; } enum "pseudo-2e23-o151" { value 15; description "Pattern is 2^23 (per O.151 standard)"; } enum "pseudo-2e25" { value 16; description "Pattern is 2^25 - 1"; } enum "pseudo-2e28" { value 17; description "Pattern is 2^28 - 1"; } enum "pseudo-2e29" { value 18; description "Pattern is 2^29 - 1"; } enum "pseudo-2e31" { value 19; description "Pattern is 2^31 - 1"; } enum "pseudo-2e32" { value 20; description "Pattern is 2^32 - 1"; } enum "all-ones-repeating" { value 21; description "Repeating one bits"; } enum "all-zeros-repeating" { value 22; description "Repeating zero bits"; } enum "alternating-ones-zeros" { value 23; description "Alternating ones and zeros"; } enum "alternating-double-ones-zeros" { value 24; description "Alternating pairs of ones and zeros"; } enum "repeating-3-in-24" { value 25; description "3 bits in 24 are set"; } enum "repeating-1-in-8" { value 26; description "1 bit in 8 is set"; } enum "repeating-1-in-4" { value 27; description "1 bit in 4 is set"; } } description "Set BERT algorithm"; } leaf bert-error-rate { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 7"; } } description "Bit error rate (10^-n for n > 0, and zero for n = 0)"; } leaf bert-period { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 240"; } } units "seconds"; description "Length of BERT test"; } leaf buildout { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 450"; } } units "feet"; description "Line buildout"; } leaf atm-encapsulation { type enumeration { enum "plcp" { value 0; description "PLCP encapsulation"; } enum "direct" { value 1; description "ATM direct mapping"; } } description "DS-3 interface encapsulation"; } } // container t3-options container e3-options { junos:must "((!("interfaces ${interface} container-options") || ("interfaces ${interface} container-options container-type" || "interfaces ${interface} container-options allow-configuration-override")))"; junos:must-message "t1-options cannot be configured without allow-configuration-override"; description "E3 interface-specific options"; uses apply-advanced; leaf loopback { type enumeration { enum "local" { value 0; description "Local loopback"; } enum "remote" { value 1; description "Remote loopback"; } } description "Loopback mode"; } choice unframed-choice { leaf unframed { type empty; description "Enable unframed mode"; } leaf no-unframed { type empty; description "Don't enable unframed mode"; } } // choice unframed-choice container compatibility-mode { description "Set CSU compatibility mode"; choice vendor { leaf larscom { type empty; description "Compatible with Larscom CSU (only non IQ E3 interfaces)"; } container digital-link { presence "enable digital-link"; description "Compatible with Digital Link CSU"; leaf subrate { type enumeration { enum "358Kb" { value 0; description "358 Kbps"; } enum "716Kb" { value 1; description "716 Kbps"; } enum "1.1Mb" { value 2; description "1.1 Mbps"; } enum "1.4Mb" { value 3; description "1.4 Mbps"; } enum "1.8Mb" { value 4; description "1.8 Mbps"; } enum "2.1Mb" { value 5; description "2.1 Mbps"; } enum "2.5Mb" { value 6; description "2.5 Mbps"; } enum "2.9Mb" { value 7; description "2.9 Mbps"; } enum "3.2Mb" { value 8; description "3.2 Mbps"; } enum "3.6Mb" { value 9; description "3.6 Mbps"; } enum "3.9Mb" { value 10; description "3.9 Mbps"; } enum "4.3Mb" { value 11; description "4.3 Mbps"; } enum "4.7Mb" { value 12; description "4.7 Mbps"; } enum "5.0Mb" { value 13; description "5.0 Mbps"; } enum "5.4Mb" { value 14; description "5.4 Mbps"; } enum "5.7Mb" { value 15; description "5.7 Mbps"; } enum "6.1Mb" { value 16; description "6.1 Mbps"; } enum "6.4Mb" { value 17; description "6.4 Mbps"; } enum "6.8Mb" { value 18; description "6.8 Mbps"; } enum "7.2Mb" { value 19; description "7.2 Mbps"; } enum "7.5Mb" { value 20; description "7.5 Mbps"; } enum "7.9Mb" { value 21; description "7.9 Mbps"; } enum "8.2Mb" { value 22; description "8.2 Mbps"; } enum "8.6Mb" { value 23; description "8.6 Mbps"; } enum "9.0Mb" { value 24; description "9.0 Mbps"; } enum "9.3Mb" { value 25; description "9.3 Mbps"; } enum "9.7Mb" { value 26; description "9.7 Mbps"; } enum "10.0Mb" { value 27; description "10.0 Mbps"; } enum "10.4Mb" { value 28; description "10.4 Mbps"; } enum "10.7Mb" { value 29; description "10.7 Mbps"; } enum "11.1Mb" { value 30; description "11.1 Mbps"; } enum "11.5Mb" { value 31; description "11.5 Mbps"; } enum "11.8Mb" { value 32; description "11.8 Mbps"; } enum "12.2Mb" { value 33; description "12.2 Mbps"; } enum "12.5Mb" { value 34; description "12.5 Mbps"; } enum "12.9Mb" { value 35; description "12.9 Mbps"; } enum "13.2Mb" { value 36; description "13.2 Mbps"; } enum "13.6Mb" { value 37; description "13.6 Mbps"; } enum "14.0Mb" { value 38; description "14.0 Mbps"; } enum "14.3Mb" { value 39; description "14.3 Mbps"; } enum "14.7Mb" { value 40; description "14.7 Mbps"; } enum "15.0Mb" { value 41; description "15.0 Mbps"; } enum "15.4Mb" { value 42; description "15.4 Mbps"; } enum "15.8Mb" { value 43; description "15.8 Mbps"; } enum "16.1Mb" { value 44; description "16.1 Mbps"; } enum "16.5Mb" { value 45; description "16.5 Mbps"; } enum "16.8Mb" { value 46; description "16.8 Mbps"; } enum "17.2Mb" { value 47; description "17.2 Mbps"; } enum "17.5Mb" { value 48; description "17.5 Mbps"; } enum "17.9Mb" { value 49; description "17.9 Mbps"; } enum "18.3Mb" { value 50; description "18.3 Mbps"; } enum "18.6Mb" { value 51; description "18.6 Mbps"; } enum "19.0Mb" { value 52; description "19.0 Mbps"; } enum "19.3Mb" { value 53; description "19.3 Mbps"; } enum "19.7Mb" { value 54; description "19.7 Mbps"; } enum "20.0Mb" { value 55; description "20.0 Mbps"; } enum "20.4Mb" { value 56; description "20.4 Mbps"; } enum "20.8Mb" { value 57; description "20.8 Mbps"; } enum "21.1Mb" { value 58; description "21.1 Mbps"; } enum "21.5Mb" { value 59; description "21.5 Mbps"; } enum "21.8Mb" { value 60; description "21.8 Mbps"; } enum "22.2Mb" { value 61; description "22.2 Mbps"; } enum "22.6Mb" { value 62; description "22.6 Mbps"; } enum "22.9Mb" { value 63; description "22.9 Mbps"; } enum "23.3Mb" { value 64; description "23.3 Mbps"; } enum "23.6Mb" { value 65; description "23.6 Mbps"; } enum "24.0Mb" { value 66; description "24.0 Mbps"; } enum "24.3Mb" { value 67; description "24.3 Mbps"; } enum "24.7Mb" { value 68; description "24.7 Mbps"; } enum "25.1Mb" { value 69; description "25.1 Mbps"; } enum "25.4Mb" { value 70; description "25.4 Mbps"; } enum "25.8Mb" { value 71; description "25.8 Mbps"; } enum "26.1Mb" { value 72; description "26.1 Mbps"; } enum "26.5Mb" { value 73; description "26.5 Mbps"; } enum "26.9Mb" { value 74; description "26.9 Mbps"; } enum "27.2Mb" { value 75; description "27.2 Mbps"; } enum "27.6Mb" { value 76; description "27.6 Mbps"; } enum "27.9Mb" { value 77; description "27.9 Mbps"; } enum "28.3Mb" { value 78; description "28.3 Mbps"; } enum "28.6Mb" { value 79; description "28.6 Mbps"; } enum "29.0Mb" { value 80; description "29.0 Mbps"; } enum "29.4Mb" { value 81; description "29.4 Mbps"; } enum "29.7Mb" { value 82; description "29.7 Mbps"; } enum "30.1Mb" { value 83; description "30.1 Mbps"; } enum "30.4Mb" { value 84; description "30.4 Mbps"; } enum "30.8Mb" { value 85; description "30.8 Mbps"; } enum "31.1Mb" { value 86; description "31.1 Mbps"; } enum "31.5Mb" { value 87; description "31.5 Mbps"; } enum "31.9Mb" { value 88; description "31.9 Mbps"; } enum "32.2Mb" { value 89; description "32.2 Mbps"; } enum "32.6Mb" { value 90; description "32.6 Mbps"; } enum "32.9Mb" { value 91; description "32.9 Mbps"; } enum "33.3Mb" { value 92; description "33.3 Mbps"; } enum "33.7Mb" { value 93; description "33.7 Mbps"; } enum "34.0Mb" { value 94; description "34.0 Mbps"; } } description "Set subrate value"; } } // container digital-link container kentrox { presence "enable kentrox"; description "Compatible with Kentrox CSU"; leaf subrate { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 48"; } } description "Set subrate value (only for E3 IQ interfaces)"; } } // container kentrox } // choice vendor } // container compatibility-mode choice payload-scrambler-choice { leaf payload-scrambler { type empty; description "Enable payload scrambling"; } leaf no-payload-scrambler { type empty; description "Don't enable payload scrambling"; } } // choice payload-scrambler-choice leaf fcs { type enumeration { enum "32" { value 0; description "32-bit mode"; } enum "16" { value 1; description "16-bit mode"; } } description "Frame checksum"; } leaf idle-cycle-flag { type enumeration { enum "flags" { value 0; description "Transmit 0x7E in idle cycles"; } enum "ones" { value 1; description "Transmit 0xFF (all ones) in idle cycles"; } } description "Value to transmit in idle cycles"; } leaf invert-data { type empty; description "Invert data"; } leaf start-end-flag { type enumeration { enum "shared" { value 0; description "Share start/end flags on transmit"; } enum "filler" { value 1; description "Send two idle cycles between start/end flags"; } } description "Set start/end flags on transmission"; } leaf bert-algorithm { type enumeration { enum "pseudo-2e3" { value 0; description "Pattern is 2^3 - 1"; } enum "pseudo-2e4" { value 1; description "Pattern is 2^4 - 1"; } enum "pseudo-2e5" { value 2; description "Pattern is 2^5 - 1"; } enum "pseudo-2e6" { value 3; description "Pattern is 2^6 - 1"; } enum "pseudo-2e7" { value 4; description "Pattern is 2^7 - 1"; } enum "pseudo-2e9-o153" { value 5; description "Pattern is 2^9 - 1 (per O.153 standard)"; } enum "pseudo-2e10" { value 6; description "Pattern is 2^10 - 1"; } enum "pseudo-2e11-o152" { value 7; description "Pattern is 2^11 -1 (per O.152 standard)"; } enum "pseudo-2e15-o151" { value 8; description "Pattern is 2^15 - 1 (per O.151 standard)"; } enum "pseudo-2e17" { value 9; description "Pattern is 2^17 - 1"; } enum "pseudo-2e18" { value 10; description "Pattern is 2^18 - 1"; } enum "pseudo-2e20-o153" { value 11; description "Pattern is 2^20 - 1 (per O.153 standard)"; } enum "pseudo-2e20-o151" { value 12; description "Pattern is 2^20 - 1 (per O.151 standard)"; } enum "pseudo-2e21" { value 13; description "Pattern is 2^21 - 1"; } enum "pseudo-2e22" { value 14; description "Pattern is 2^22 - 1"; } enum "pseudo-2e23-o151" { value 15; description "Pattern is 2^23 (per O.151 standard)"; } enum "pseudo-2e25" { value 16; description "Pattern is 2^25 - 1"; } enum "pseudo-2e28" { value 17; description "Pattern is 2^28 - 1"; } enum "pseudo-2e29" { value 18; description "Pattern is 2^29 - 1"; } enum "pseudo-2e31" { value 19; description "Pattern is 2^31 - 1"; } enum "pseudo-2e32" { value 20; description "Pattern is 2^32 - 1"; } enum "all-ones-repeating" { value 21; description "Repeating one bits"; } enum "all-zeros-repeating" { value 22; description "Repeating zero bits"; } enum "alternating-ones-zeros" { value 23; description "Alternating ones and zeros"; } enum "alternating-double-ones-zeros" { value 24; description "Alternating pairs of ones and zeros"; } enum "repeating-3-in-24" { value 25; description "3 bits in 24 are set"; } enum "repeating-1-in-8" { value 26; description "1 bit in 8 is set"; } enum "repeating-1-in-4" { value 27; description "1 bit in 4 is set"; } } description "Set BERT algorithm"; } leaf bert-error-rate { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 7"; } } description "Bit error rate (10^-n for n > 0, and zero for n = 0)"; } leaf bert-period { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 240"; } } units "seconds"; description "Length of BERT test"; } leaf buildout { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 450"; } } units "feet"; description "Line buildout"; } leaf atm-encapsulation { type enumeration { enum "plcp" { value 0; description "PLCP encapsulation"; } enum "direct" { value 1; description "ATM direct mapping"; } } description "E3 interface encapsulation"; } leaf framing { type enumeration { enum "g.751" { value 0; description "G.751 format"; } enum "g.832" { value 1; description "G.832 format"; } } description "E3 line format"; } } // container e3-options container e1-options { junos:must "((!("interfaces ${interface} container-options") || ("interfaces ${interface} container-options container-type" || "interfaces ${interface} container-options allow-configuration-override")))"; junos:must-message "e1-options cannot be configured without allow-configuration-override"; description "E1 interface-specific options"; uses apply-advanced; leaf timeslots { type string; description "Timeslots (1..32); for example, 1-4,6,9-11,32 (no space)"; } leaf loopback { type enumeration { enum "local" { value 0; description "Local loopback"; } enum "remote" { value 1; description "Remote loopback"; } } description "Loopback mode"; } leaf framing { type enumeration { enum "g704" { value 0; description "G704 mode with CRC4"; } enum "unframed" { value 1; description "Unframed mode"; } enum "g704-no-crc4" { value 2; description "G704 mode without CRC4"; } } description "Framing mode"; } leaf fcs { type enumeration { enum "32" { value 0; description "32-bit mode"; } enum "16" { value 1; description "16-bit mode"; } } description "Frame checksum"; } leaf invert-data { type empty; description "Invert data"; } leaf idle-cycle-flag { type enumeration { enum "flags" { value 0; description "Transmit 0x7E in idle cycles"; } enum "ones" { value 1; description "Transmit 0xFF (all ones) in idle cycles"; } } description "Value to transmit in idle cycles"; } leaf start-end-flag { type enumeration { enum "shared" { value 0; description "Share start/end flags on transmit"; } enum "filler" { value 1; description "Send two idle cycles between start/end flags"; } } description "Set start/end flags on transmission"; } leaf bert-algorithm { type enumeration { enum "pseudo-2e3" { value 0; description "Pattern is 2^3 - 1"; } enum "pseudo-2e4" { value 1; description "Pattern is 2^4 - 1"; } enum "pseudo-2e5" { value 2; description "Pattern is 2^5 - 1"; } enum "pseudo-2e6" { value 3; description "Pattern is 2^6 - 1"; } enum "pseudo-2e7" { value 4; description "Pattern is 2^7 - 1"; } enum "pseudo-2e9-o153" { value 5; description "Pattern is 2^9 - 1 (per O.153 standard)"; } enum "pseudo-2e10" { value 6; description "Pattern is 2^10 - 1"; } enum "pseudo-2e11-o152" { value 7; description "Pattern is 2^11 -1 (per O.152 standard)"; } enum "pseudo-2e15-o151" { value 8; description "Pattern is 2^15 - 1 (per O.151 standard)"; } enum "pseudo-2e17" { value 9; description "Pattern is 2^17 - 1"; } enum "pseudo-2e18" { value 10; description "Pattern is 2^18 - 1"; } enum "pseudo-2e20-o153" { value 11; description "Pattern is 2^20 - 1 (per O.153 standard)"; } enum "pseudo-2e20-o151" { value 12; description "Pattern is 2^20 - 1 (per O.151 standard)"; } enum "pseudo-2e21" { value 13; description "Pattern is 2^21 - 1"; } enum "pseudo-2e22" { value 14; description "Pattern is 2^22 - 1"; } enum "pseudo-2e23-o151" { value 15; description "Pattern is 2^23 (per O.151 standard)"; } enum "pseudo-2e25" { value 16; description "Pattern is 2^25 - 1"; } enum "pseudo-2e28" { value 17; description "Pattern is 2^28 - 1"; } enum "pseudo-2e29" { value 18; description "Pattern is 2^29 - 1"; } enum "pseudo-2e31" { value 19; description "Pattern is 2^31 - 1"; } enum "pseudo-2e32" { value 20; description "Pattern is 2^32 - 1"; } enum "all-ones-repeating" { value 21; description "Repeating one bits"; } enum "all-zeros-repeating" { value 22; description "Repeating zero bits"; } enum "alternating-ones-zeros" { value 23; description "Alternating ones and zeros"; } enum "alternating-double-ones-zeros" { value 24; description "Alternating pairs of ones and zeros"; } enum "repeating-3-in-24" { value 25; description "3 bits in 24 are set"; } enum "repeating-1-in-8" { value 26; description "1 bit in 8 is set"; } enum "repeating-1-in-4" { value 27; description "1 bit in 4 is set"; } } description "Set BERT algorithm"; } leaf bert-error-rate { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 7"; } } description "Bit error rate (10^-n for n > 0, and zero for n = 0)"; } leaf bert-period { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 86400"; } } units "seconds"; description "Length of BERT test"; } } // container e1-options container t1-options { junos:must "((!("interfaces ${interface} container-options") || ("interfaces ${interface} container-options container-type" || "interfaces ${interface} container-options allow-configuration-override")))"; junos:must-message "t1-options cannot be configured without allow-configuration-override"; description "T1 interface-specific options"; uses apply-advanced; leaf timeslots { type string; description "Timeslots (1..24; for example, 1-3,4,9,22-24 (no space)"; } leaf disable-remote-alarm-detection { type enumeration { enum "yellow" { value 0; description "Disable yellow alarm detection"; } } description "Disable detection of a remote alarm"; } leaf loopback { type enumeration { enum "local" { value 0; description "Local loopback"; } enum "remote" { value 1; description "Remote loopback"; } enum "payload" { value 2; description "Payload loopback"; } } description "Loopback mode"; } leaf buildout { type enumeration { enum "0-132" { value 0; description "Line buildout is between 0-132 feet"; } enum "133-265" { value 1; description "Line buildout is between 133-265 feet"; } enum "266-398" { value 2; description "Line buildout is between 266-398 feet"; } enum "399-531" { value 3; description "Line buildout is between 399-531 feet"; } enum "532-655" { value 4; description "Line buildout is between 532-655 feet"; } enum "long-0db" { value 5; description "Long buildout with 0 dB transmit attenuation"; } enum "long-7.5db" { value 6; description "Long buildout with 7.5 dB transmit attenuation"; } enum "long-15db" { value 7; description "Long buildout with 15 dB transmit attenuation"; } enum "long-22.5db" { value 8; description "Long buildout with 22.5 dB transmit attenuation"; } } description "Line buildout"; } leaf byte-encoding { type enumeration { enum "nx64" { value 0; description "8 bits per byte"; } enum "nx56" { value 1; description "7 bits per byte"; } } description "Byte encoding"; } leaf line-encoding { type enumeration { enum "ami" { value 0; description "Automatic mark inversion"; } enum "b8zs" { value 1; description "8-bit zero suppression"; } } description "Line encoding"; } leaf invert-data { type empty; description "Invert data"; } leaf framing { type enumeration { enum "sf" { value 0; description "Super frame"; } enum "esf" { value 1; description "Extended super frame"; } } description "Framing mode"; } leaf fcs { type enumeration { enum "32" { value 0; description "32-bit mode"; } enum "16" { value 1; description "16-bit mode"; } } description "Frame checksum"; } leaf idle-cycle-flag { type enumeration { enum "flags" { value 0; description "Transmit 0x7E in idle cycles"; } enum "ones" { value 1; description "Transmit 0xFF (all ones) in idle cycles"; } } description "Value to transmit in idle cycles"; } leaf start-end-flag { type enumeration { enum "shared" { value 0; description "Share start/end flags on transmit"; } enum "filler" { value 1; description "Send two idle cycles between start/end flags"; } } description "Set start/end flags on transmission"; } leaf bert-algorithm { type enumeration { enum "pseudo-2e3" { value 0; description "Pattern is 2^3 - 1"; } enum "pseudo-2e4" { value 1; description "Pattern is 2^4 - 1"; } enum "pseudo-2e5" { value 2; description "Pattern is 2^5 - 1"; } enum "pseudo-2e6" { value 3; description "Pattern is 2^6 - 1"; } enum "pseudo-2e7" { value 4; description "Pattern is 2^7 - 1"; } enum "pseudo-2e9-o153" { value 5; description "Pattern is 2^9 - 1 (per O.153 standard)"; } enum "pseudo-2e10" { value 6; description "Pattern is 2^10 - 1"; } enum "pseudo-2e11-o152" { value 7; description "Pattern is 2^11 -1 (per O.152 standard)"; } enum "pseudo-2e15-o151" { value 8; description "Pattern is 2^15 - 1 (per O.151 standard)"; } enum "pseudo-2e17" { value 9; description "Pattern is 2^17 - 1"; } enum "pseudo-2e18" { value 10; description "Pattern is 2^18 - 1"; } enum "pseudo-2e20-o153" { value 11; description "Pattern is 2^20 - 1 (per O.153 standard)"; } enum "pseudo-2e20-o151" { value 12; description "Pattern is 2^20 - 1 (per O.151 standard)"; } enum "pseudo-2e21" { value 13; description "Pattern is 2^21 - 1"; } enum "pseudo-2e22" { value 14; description "Pattern is 2^22 - 1"; } enum "pseudo-2e23-o151" { value 15; description "Pattern is 2^23 (per O.151 standard)"; } enum "pseudo-2e25" { value 16; description "Pattern is 2^25 - 1"; } enum "pseudo-2e28" { value 17; description "Pattern is 2^28 - 1"; } enum "pseudo-2e29" { value 18; description "Pattern is 2^29 - 1"; } enum "pseudo-2e31" { value 19; description "Pattern is 2^31 - 1"; } enum "pseudo-2e32" { value 20; description "Pattern is 2^32 - 1"; } enum "all-ones-repeating" { value 21; description "Repeating one bits"; } enum "all-zeros-repeating" { value 22; description "Repeating zero bits"; } enum "alternating-ones-zeros" { value 23; description "Alternating ones and zeros"; } enum "alternating-double-ones-zeros" { value 24; description "Alternating pairs of ones and zeros"; } enum "repeating-3-in-24" { value 25; description "3 bits in 24 are set"; } enum "repeating-1-in-8" { value 26; description "1 bit in 8 is set"; } enum "repeating-1-in-4" { value 27; description "1 bit in 4 is set"; } } description "Set BERT algorithm"; } leaf bert-error-rate { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 7"; } } description "Bit error rate (10^-n for n > 0, and zero for n = 0)"; } leaf bert-period { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 86400"; } } units "seconds"; description "Length of BERT test"; } leaf remote-loopback-respond { type empty; description "Respond to loop requests from remote end"; } leaf crc-major-alarm-threshold { type enumeration { enum "1e-3" { value 0; description "1 crc error in 10^3 bits"; } enum "5e-4" { value 1; description "5 crc errors in 10^4 bits"; } enum "1e-4" { value 2; description "1 crc error in 10^4 bits"; } enum "5e-5" { value 3; description "5 crc errors in 10^5 bits"; } enum "1e-5" { value 4; description "1 crc error in 10^5 bits"; } } default "5e-5"; description "CRC Major alarm threshold value"; } leaf crc-minor-alarm-threshold { type enumeration { enum "1e-3" { value 0; description "1 crc error in 10^3 bits"; } enum "5e-4" { value 1; description "5 crc errors in 10^4 bits"; } enum "1e-4" { value 2; description "1 crc error in 10^4 bits"; } enum "5e-5" { value 3; description "5 crc errors in 10^5 bits"; } enum "1e-5" { value 4; description "1 crc error in 10^5 bits"; } enum "5e-6" { value 5; description "5 crc errors in 10^6 bits"; } enum "1e-6" { value 6; description "1 crc error in 10^6 bits"; } } default "5e-6"; description "CRC Minor alarm threshold value"; } } // container t1-options container ds0-options { junos:must "((!("interfaces ${interface} container-options") || ("interfaces ${interface} container-options container-type" || "interfaces ${interface} container-options allow-configuration-override")))"; junos:must-message "ds0-options cannot be configured without allow-configuration-override"; description "DS-0 interface-specific options"; uses apply-advanced; leaf loopback { type enumeration { enum "payload" { value 0; description "Payload loopback"; } } description "Loopback mode"; } leaf byte-encoding { type enumeration { enum "nx64" { value 0; description "8 bits per byte"; } enum "nx56" { value 1; description "7 bits per byte"; } } description "Byte encoding"; } leaf invert-data { type empty; description "Invert data"; } leaf fcs { type enumeration { enum "32" { value 0; description "32-bit mode"; } enum "16" { value 1; description "16-bit mode"; } } description "Frame checksum"; } leaf idle-cycle-flag { type enumeration { enum "flags" { value 0; description "Transmit 0x7E in idle cycles"; } enum "ones" { value 1; description "Transmit 0xFF (all ones) in idle cycles"; } } description "Value to transmit in idle cycles"; } leaf start-end-flag { type enumeration { enum "shared" { value 0; description "Share start/end flags on transmit"; } enum "filler" { value 1; description "Send two idle cycles between start/end flags"; } } description "Set start/end flags on transmission"; } leaf bert-algorithm { type enumeration { enum "pseudo-2e11-o152" { value 0; description "Pattern is 2^11 -1 (per O.152 standard)"; } enum "pseudo-2e15-o151" { value 1; description "Pattern is 2^15 - 1 (per O.151 standard)"; } enum "pseudo-2e20-o153" { value 2; description "Pattern is 2^20 - 1 (per O.153 standard)"; } enum "pseudo-2e20-o151" { value 3; description "Pattern is 2^20 - 1 (per O.151 standard)"; } enum "all-ones-repeating" { value 4; description "Repeating one bits"; } enum "all-zeros-repeating" { value 5; description "Repeating zero bits"; } enum "alternating-ones-zeros" { value 6; description "Alternating ones and zeros"; } enum "alternating-double-ones-zeros" { value 7; description "Alternating pairs of ones and zeros"; } enum "repeating-3-in-24" { value 8; description "3 bits in 24 are set"; } enum "repeating-1-in-8" { value 9; description "1 bit in 8 is set"; } enum "repeating-1-in-4" { value 10; description "1 bit in 4 is set"; } enum "repeating-1-in-16" { value 11; description "1 bit in 16 is set"; } } description "Set BERT algorithm"; } leaf bert-error-rate { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 7"; } } description "Bit error rate (10^-n for n > 0, and zero for n = 0)"; } leaf bert-period { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 240"; } } units "seconds"; description "Length of BERT test"; } } // container ds0-options container serial-options { description "Serial interface-specific options"; uses apply-advanced; leaf line-protocol { type enumeration { enum "eia530" { value 0; description "Line protocol EIA530"; } enum "v.35" { value 1; description "Line protocol V.35"; } enum "x.21" { value 2; description "Line protocol X.21"; } } default "eia530"; description "Line protocol to be used"; } choice control_leads_choice { container dte-options { description "DTE options/control leads"; uses apply-advanced; leaf ignore-all { junos:must "(!(".. indication"))"; junos:must-message "SERIAL: ignore-all configured when indication explicitly configured"; junos:must "(!(".. cts"))"; junos:must-message "SERIAL: ignore-all configured when cts explicitly configured"; junos:must "(!(".. dsr"))"; junos:must-message "SERIAL: ignore-all configured when dsr explicitly configured"; junos:must "(!(".. tm"))"; junos:must-message "SERIAL: ignore-all configured when tm explicitly configured"; junos:must "(!(".. dcd"))"; junos:must-message "SERIAL: ignore-all configured when dcd explicitly configured"; type empty; description "Ignore all control leads"; } container dtr { description "Data Transmit Ready signal handling"; choice dtr_choices { leaf assert { type empty; description "Assert DTR signal"; } leaf de-assert { type empty; description "Deassert DTR signal"; } leaf normal { type empty; description "Normal DTR signal"; } container auto-synchronize { presence "enable auto-synchronize"; description "Normal DTR signal, with autoresynchronization"; uses apply-advanced; leaf duration { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 1000"; } } units "milliseconds"; description "Duration of autoresynchronization"; } leaf interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 31"; } } units "seconds"; description "Interval for autoresynchronization"; } } // container auto-synchronize } // choice dtr_choices } // container dtr leaf control-signal { junos:must "(!(".. .. line-protocol eia530"))"; junos:must-message "Control signal invalid on line-protocol eia530"; junos:must "(!(".. .. line-protocol v.35"))"; junos:must-message "Control signal invalid on line-protocol v.35"; type enumeration { enum "assert" { value 0; description "Assert control signal"; } enum "de-assert" { value 1; description "Deassert control signal"; } enum "normal" { value 2; description "Normal control signal"; } } description "X.21 control signal handling"; } leaf rts { junos:must "(!(".. .. line-protocol x.21"))"; junos:must-message "rts invalid on line-protocol x.21"; type enumeration { enum "assert" { value 0; description "Assert RTS signal"; } enum "de-assert" { value 1; description "Deassert RTS signal"; } enum "normal" { value 2; description "Normal RTS signal"; } } description "Request To Send signal handling"; } leaf dcd { type enumeration { enum "require" { value 0; description "Require DCD signal"; } enum "ignore" { value 1; description "Ignore DCD signal"; } enum "normal" { value 2; description "Normal DCD signal"; } } description "Data Carrier Detect signal handling"; } leaf dsr { type enumeration { enum "require" { value 0; description "Require DSR signal"; } enum "ignore" { value 1; description "Ignore DSR signal"; } enum "normal" { value 2; description "Normal DSR signal"; } } description "Data Set Ready signal handling"; } leaf cts { junos:must "(!(".. .. line-protocol x.21"))"; junos:must-message "cts invalid on line-protocol x.21"; type enumeration { enum "require" { value 0; description "Require CTS signal"; } enum "ignore" { value 1; description "Ignore CTS signal"; } enum "normal" { value 2; description "Normal CTS signal"; } } description "Clear To Send signal handling"; } leaf indication { junos:must "(!(".. .. line-protocol eia530"))"; junos:must-message "Indication invalid on line-protocol eia530"; junos:must "(!(".. .. line-protocol v.35"))"; junos:must-message "Indication invalid on line-protocol v.35"; type enumeration { enum "require" { value 0; description "Require Indication signal"; } enum "ignore" { value 1; description "Ignore Indication signal"; } enum "normal" { value 2; description "Normal Indication signal"; } } description "X.21 Indication signal handling"; } leaf tm { type enumeration { enum "require" { value 0; description "Require TM signal"; } enum "ignore" { value 1; description "Ignore TM signal"; } enum "normal" { value 2; description "Normal TM signal"; } } description "Test Mode signal handling"; } } // container dte-options case case_2 { } // case case_2 } // choice control_leads_choice leaf dtr-circuit { junos:must "(!(".. line-protocol x.21"))"; junos:must-message "dtr-circuit invalid with line protocol x.21"; type enumeration { enum "balanced" { value 0; description "Balanced signal"; } enum "unbalanced" { value 1; description "Unbalanced signal"; } } description "Data Transmit Ready circuit mode"; } leaf dtr-polarity { junos:must "(!(".. line-protocol x.21"))"; junos:must-message "dtr-polarity invalid with line protocol x.21"; type enumeration { enum "positive" { value 0; description "Positive polarity"; } enum "negative" { value 1; description "Negative polarity"; } } description "Data Transmit Ready signal polarity"; } leaf rts-polarity { junos:must "(!(".. line-protocol x.21"))"; junos:must-message "rts invalid on line-protocol x.21"; type enumeration { enum "positive" { value 0; description "Positive polarity"; } enum "negative" { value 1; description "Negative polarity"; } } description "Request To Send signal polarity"; } leaf control-polarity { junos:must "(!(".. line-protocol eia530"))"; junos:must-message "Control signal invalid on line-protocol eia530"; junos:must "(!(".. line-protocol v.35"))"; junos:must-message "Control signal invalid on line-protocol v.35"; type enumeration { enum "positive" { value 0; description "Positive polarity"; } enum "negative" { value 1; description "Negative polarity"; } } description "X.21 Control signal polarity"; } leaf dcd-polarity { junos:must "(!(".. line-protocol x.21"))"; junos:must-message "dcd-polarity invalid with line protocol x.21"; type enumeration { enum "positive" { value 0; description "Positive polarity"; } enum "negative" { value 1; description "Negative polarity"; } } description "Data Carrier Detect signal polarity"; } leaf dsr-polarity { junos:must "(!(".. line-protocol x.21"))"; junos:must-message "dsr-polarity invalid with line protocol x.21"; type enumeration { enum "positive" { value 0; description "Positive polarity"; } enum "negative" { value 1; description "Negative polarity"; } } description "Data Set Ready signal polarity"; } leaf cts-polarity { junos:must "(!(".. line-protocol x.21"))"; junos:must-message "cts invalid on line-protocol x.21"; type enumeration { enum "positive" { value 0; description "Positive polarity"; } enum "negative" { value 1; description "Negative polarity"; } } description "Clear To Send signal polarity"; } leaf indication-polarity { junos:must "(!(".. line-protocol eia530"))"; junos:must-message "Indication invalid on line-protocol eia530"; junos:must "(!(".. line-protocol v.35"))"; junos:must-message "Indication invalid on line-protocol v.35"; type enumeration { enum "positive" { value 0; description "Positive polarity"; } enum "negative" { value 1; description "Negative polarity"; } } description "X.21 Indication signal polarity"; } leaf tm-polarity { junos:must "(!(".. line-protocol x.21"))"; junos:must-message "tm-polarity invalid for line protocol x.21"; junos:must "(!(".. line-protocol v.35"))"; junos:must-message "tm-polarity invalid for line protocol v.35"; type enumeration { enum "positive" { value 0; description "Positive polarity"; } enum "negative" { value 1; description "Negative polarity"; } } description "Test Mode signal polarity"; } leaf clocking-mode { type enumeration { enum "dce" { value 0; description "DCE timing (DTE mode only, not valid for X.21)"; } enum "internal" { value 1; description "Internal baud timing"; } enum "loop" { value 2; description "Loop timing"; } } description "Clock mode"; } leaf transmit-clock { type enumeration { enum "invert" { value 0; description "Shift clock phase 180 degrees"; } } description "Transmit clock phase"; } leaf clock-rate { type enumeration { enum "2.048mhz" { value 0; description "2.048 MHz"; } enum "2.341mhz" { value 1; description "2.341 MHz"; } enum "2.731mhz" { value 2; description "2.731 MHz"; } enum "3.277mhz" { value 3; description "3.277 MHz"; } enum "4.096mhz" { value 4; description "4.096 MHz"; } enum "5.461mhz" { value 5; description "5.461 MHz"; } enum "8.192mhz" { value 6; description "8.192 MHz"; } enum "16.384mhz" { value 7; description "16.384 MHz"; } enum "1.2khz" { value 8; description "1.2 KHz"; } enum "2.4khz" { value 9; description "2.4 KHz"; } enum "9.6khz" { value 10; description "9.6 KHz"; } enum "19.2khz" { value 11; description "19.2 KHz"; } enum "38.4khz" { value 12; description "38.4 KHz"; } enum "56.0khz" { value 13; description "56.0 KHz"; } enum "64.0khz" { value 14; description "64.0 KHz"; } enum "72.0khz" { value 15; description "72.0 KHz"; } enum "125.0khz" { value 16; description "125.0 KHz"; } enum "148.0khz" { value 17; description "148.0 KHz"; } enum "250.0khz" { value 18; description "250.0 KHz"; } enum "500.0khz" { value 19; description "500.0 KHz"; } enum "800.0khz" { value 20; description "800.0 KHz"; } enum "1.0mhz" { value 21; description "1.0 MHz"; } enum "1.3mhz" { value 22; description "1.3 MHz"; } enum "2.0mhz" { value 23; description "2.0 MHz"; } enum "4.0mhz" { value 24; description "4.0 MHz"; } enum "8.0mhz" { value 25; description "8.0 MHz"; } } description "Interface clock rate"; } leaf loopback { type enumeration { enum "local" { value 0; description "Local loopback"; } enum "remote" { value 1; description "Remote/LIU loopback"; } enum "dce-local" { value 2; description "DCE local loopback (DTE mode only)"; } enum "dce-remote" { value 3; description "DCE remote loopback"; } } description "Loopback mode"; } leaf encoding { type enumeration { enum "nrz" { value 0; description "Non-Return-To-Zero"; } enum "nrzi" { value 1; description "Non-Return-To-Zero-Invertible"; } } description "Line encoding"; } } // container serial-options choice gratuitous-arp-reply-choice { leaf gratuitous-arp-reply { type empty; description "Enable gratuitous ARP reply"; } leaf no-gratuitous-arp-reply { type empty; description "Don't enable gratuitous ARP reply"; } } // choice gratuitous-arp-reply-choice choice no-gratuitous-arp-request-choice { leaf no-gratuitous-arp-request { type empty; description "Ignore gratuitous ARP request"; } leaf no-no-gratuitous-arp-request { type empty; description "Don't ignore gratuitous ARP request"; } } // choice no-gratuitous-arp-request-choice leaf arp-l2-validate { type empty; description "Validate ARP against L2"; } container ether-options { description "Ethernet interface-specific options"; uses apply-advanced; choice loopback-choice { leaf loopback { type empty; description "Enable loopback"; } leaf no-loopback { type empty; description "Don't enable loopback"; } } // choice loopback-choice leaf loopback-remote { junos:must "(!(".. .. optics-options loopback"))"; junos:must-message "'optics-options loopback' and loopback-remote are mutually exclusive"; junos:must "(!(".. loopback"))"; junos:must-message "loopback and loopback-remote are mutually exclusive"; type empty; description "Enable remote loopback"; } choice source-filtering-choice { leaf source-filtering { type empty; description "Enable source address filtering"; } leaf no-source-filtering { type empty; description "Don't enable source address filtering"; } } // choice source-filtering-choice container ethernet-switch-profile { description "Ethernet virtual LAN/media access control-level options"; uses apply-advanced; leaf-list tag-protocol-id { type string; ordered-by user; description "IEEE 802.1q Tag Protocol Identifier values for VLAN-tagged frames"; } container ethernet-policer-profile { description "Ethernet level CoS-based policer configuration"; uses apply-advanced; container input-priority-map { description "Input policer priority map"; uses cos_policer_input_priority_map; } // container input-priority-map container output-priority-map { description "Output policer priority map"; uses cos_policer_output_priority_map; } // container output-priority-map list policer { key "name"; ordered-by user; description "Policer template definition"; uses cos_policer; } // list policer } // container ethernet-policer-profile container storm-control { junos:must "(!(any "interfaces ${interface} unit <*> family ethernet-switching storm-control <*>"))"; junos:must-message "An interface cannot have storm control on both family ethernet-switching and ethernet switch profile"; description "Storm control profile name to bind"; uses apply-advanced; leaf profile-name { junos:must "("forwarding-options storm-control-profiles $$")"; junos:must-message "Storm profile name must be defined in the [edit forwarding-options storm-control-profiles] hierarchy"; junos:must "(!("forwarding-options storm-control-profiles $$ action-shutdown"))"; junos:must-message "Action shutdown is not supported with the attached interface"; type string; description "Profile name"; } } // container storm-control container recovery-timeout { description "Recovery timeout for this interface"; leaf time-in-seconds { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "10 .. 3600"; } } units "seconds"; } } // container recovery-timeout choice mac-learn-enable-choice { leaf mac-learn-enable { type empty; description "Learn MAC addresses dynamically"; } leaf no-mac-learn-enable { type empty; description "Don't learn MAC addresses dynamically"; } } // choice mac-learn-enable-choice } // container ethernet-switch-profile leaf asynchronous-notification { type empty; description "Enable sending asynchronous notification to peer on CCC-down"; } list source-address-filter { key "name"; description "Source address filters"; leaf name { type jt:mac-addr; description "Remote MAC address"; } } // list source-address-filter choice auto-negotiation-choice { leaf auto-negotiation { type empty; description "Enable auto-negotiation"; } leaf no-auto-negotiation { type empty; description "Don't enable auto-negotiation"; } } // choice auto-negotiation-choice choice flow-control-choice { leaf flow-control { type empty; description "Enable flow control"; } leaf no-flow-control { type empty; description "Don't enable flow control"; } } // choice flow-control-choice container configured-flow-control { junos:must "(!((".. flow-control" || ".. no-flow-control")))"; junos:must-message "flow-control and configured-flow-control are not allowed together"; presence "enable configured-flow-control"; description "Enable flow control"; uses apply-advanced; leaf rx-buffers { type enumeration { enum "on" { value 0; description "Enable Rx buffers"; } enum "off" { value 1; description "Disable Rx buffers"; } } description "Enable/Disable Rx buffers"; } leaf tx-buffers { type enumeration { enum "on" { value 0; description "Enable Tx buffers"; } enum "off" { value 1; description "Disable Tx buffers"; } } description "Enable/Disable Tx buffers"; } } // container configured-flow-control leaf link-mode { type enumeration { enum "automatic" { value 0; description "Automatic negotiate duplex "; } enum "half-duplex" { value 1; description "Half-duplex operation"; } enum "full-duplex" { value 2; description "Full-duplex operation"; } } description "Link duplex"; } container mpls { description "MPLS options"; uses mpls_ifd_options; } // container mpls leaf ignore-l3-incompletes { type empty; description "Ignore L3 incomplete errors"; } leaf no-auto-mdix { type empty; description "Disable auto MDI/MDIX"; } leaf fec { type enumeration { enum "none" { value 0; description "FEC disabled"; } enum "fec91" { value 1; description "IEEE 802.3bj Clause 91, Reed-Solomon FEC (RS-FEC)"; } enum "fec74" { value 2; description "FEC74 enabled"; } enum "fec108" { value 3; description "IEEE 802.3by Clause 108, Reed-Solomon FEC (RS-FEC) on 25g links"; } } description "Forward Error Correction mode"; } container speed { description "Specify speed"; choice automatic { container auto-negotiation { presence "enable auto-negotiation"; description "Enable auto-negotiation"; leaf auto-negotiate-10-100 { type empty; description "Limits the auto-negotiation to 10m/100m only"; } } // container auto-negotiation leaf ethernet-10m { type empty; description "10Mbps"; } leaf ethernet-100m { type empty; description "100Mbps"; } leaf ethernet-1g { type empty; description "1Gbps"; } leaf ethernet-10g { type empty; description "10Gbps"; } } // choice automatic } // container speed container ieee-802.3ad { junos:must "(!("system autoinstallation"))"; junos:must-message "incompatible with 'system autoinstallation'"; description "IEEE 802.3ad"; uses apply-advanced; container lacp { description "Link Aggregation Control Protocol configuration"; uses apply-advanced; leaf force-up { type empty; description "Keep the port up in absence of received LACPDU"; } leaf port-priority { type union { type uint16; type string { pattern "<.*>|$.*"; } } description "Priority of the port (0 ... 65535)"; } } // container lacp leaf bundle { junos:must "(!(".. .. .. gigether-options 802.3ad"))"; junos:must-message "Member link cannot be a part of multiple aggregation group"; junos:must "(!(".. .. .. vlan-offload"))"; junos:must-message "ae child device vlan-offload is not allowed"; junos:must "(!(".. .. .. flow-control"))"; junos:must-message "Setting flow-control on ae child device is not allowed"; junos:must "(!(".. .. .. mtu"))"; junos:must-message "Setting mtu on ae child device is not allowed"; junos:must "(!(".. .. .. vlan-vci-tagging"))"; junos:must-message "ae child device vlan-vci-tagging is not allowed"; junos:must "(!(".. .. .. stacked-vlan-tagging"))"; junos:must-message "ae child device stacked-vlan-tagging is not allowed"; junos:must "(!(".. .. .. flexible-vlan-tagging"))"; junos:must-message "ae child device flexible-vlan-tagging is not allowed"; junos:must "(!(".. .. .. vlan-tagging"))"; junos:must-message "ae child device vlan-tagging is not allowed"; junos:must "(!(".. .. .. passive-monitor-mode"))"; junos:must-message "802.3ad not valid for passive-monitor-mode"; type union { type jt:interface-device; type string { pattern "<.*>|$.*"; } } description "Join an aggregated Ethernet interface"; } choice type { leaf primary { type empty; description "Primary interface for link-protection mode"; } leaf backup { type empty; description "Backup interface for link-protection mode"; } } // choice type container link-protection-sub-group { description "Link Protection subgroup configuration"; uses apply-advanced; leaf subgroup-name { type string { length "2 .. 64"; } description "Name of the subgroup"; } } // container link-protection-sub-group leaf port-priority { type union { type uint16; type string { pattern "<.*>|$.*"; } } description "Link protection Priority of the port (0 ... 65535)"; } } // container ieee-802.3ad leaf ieee-802-3az-eee { type empty; description "IEEE 802.3az Energy Efficient Ethernet(EEE)"; } leaf autostate-exclude { type empty; description "Interface will not contribute to IRB state"; } } // container ether-options container fibrechannel-options { description "Fibre Channel interface-specific options"; uses apply-advanced; choice loopback-choice { leaf loopback { type empty; description "Enable loopback"; } leaf no-loopback { type empty; description "Don't enable loopback"; } } // choice loopback-choice leaf bb-sc-n { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "0 .. 15"; } } description "B2B state change number"; } leaf speed { type enumeration { enum "auto-negotiation" { value 0; description "Enable auto-negotiation"; } enum "1g" { value 1; description "1Gbps"; } enum "2g" { value 2; description "2Gbps"; } enum "4g" { value 3; description "4Gbps"; } enum "8g" { value 4; description "8Gbps"; } } description "Specify speed"; } } // container fibrechannel-options container gigether-options { description "Gigabit Ethernet interface-specific options"; uses apply-advanced; choice loopback-choice { leaf loopback { type empty; description "Enable loopback"; } leaf no-loopback { type empty; description "Don't enable loopback"; } } // choice loopback-choice leaf loopback-remote { junos:must "(!(".. .. optics-options loopback"))"; junos:must-message "'optics-options loopback' and loopback-remote are mutually exclusive"; junos:must "(!(".. loopback"))"; junos:must-message "loopback and loopback-remote are mutually exclusive"; type empty; description "Enable remote loopback"; } choice flow-control-choice { leaf flow-control { type empty; description "Enable flow control"; } leaf no-flow-control { type empty; description "Don't enable flow control"; } } // choice flow-control-choice choice source-filtering-choice { leaf source-filtering { type empty; description "Enable source address filtering"; } leaf no-source-filtering { type empty; description "Don't enable source address filtering"; } } // choice source-filtering-choice choice auto_negotiation_option { leaf no-auto-negotiation { type empty; description "Disable auto-negotiation"; } container auto-negotiation { presence "enable auto-negotiation"; description "Enable auto-negotiation"; leaf remote-fault { type enumeration { enum "local-interface-offline" { value 0; description "Disable local interface"; } enum "local-interface-online" { value 1; description "Enable local interface"; } } } } // container auto-negotiation } // choice auto_negotiation_option leaf asynchronous-notification { type empty; description "Enable sending asynchronous notification to peer on CCC-down"; } list source-address-filter { key "name"; description "Source address filters"; leaf name { type jt:mac-addr; description "Remote MAC address"; } } // list source-address-filter container ieee-802.3ad { junos:must "(!("system autoinstallation"))"; junos:must-message "incompatible with 'system autoinstallation'"; description "IEEE 802.3ad"; uses apply-advanced; container lacp { description "Link Aggregation Control Protocol configuration"; uses apply-advanced; leaf port-priority { type union { type uint16; type string { pattern "<.*>|$.*"; } } description "Priority of the port (0 ... 65535)"; } } // container lacp leaf bundle { junos:must "(!(".. .. .. ether-options 802.3ad"))"; junos:must-message "Member link cannot be a part of multiple aggregation group"; junos:must "(!(".. .. .. vlan-offload"))"; junos:must-message "ae child device vlan-offload is not allowed"; junos:must "(!(".. .. .. flow-control"))"; junos:must-message "Setting flow-control on ae child device is not allowed"; junos:must "(!(".. .. .. mtu"))"; junos:must-message "Setting mtu on ae child device is not allowed"; junos:must "(!(".. .. .. vlan-vci-tagging"))"; junos:must-message "ae child device vlan-vci-tagging is not allowed"; junos:must "(!(".. .. .. stacked-vlan-tagging"))"; junos:must-message "ae child device stacked-vlan-tagging is not allowed"; junos:must "(!(".. .. .. flexible-vlan-tagging"))"; junos:must-message "ae child device flexible-vlan-tagging is not allowed"; junos:must "(!(".. .. .. vlan-tagging"))"; junos:must-message "ae child device vlan-tagging is not allowed"; junos:must "(!(".. .. .. passive-monitor-mode"))"; junos:must-message "802.3ad not valid for passive-monitor-mode"; type union { type jt:interface-device; type string { pattern "<.*>|$.*"; } } description "Join an aggregated Ethernet interface"; } choice type { leaf primary { type empty; description "Primary interface for link-protection mode"; } leaf backup { type empty; description "Backup interface for link-protection mode"; } } // choice type } // container ieee-802.3ad container ethernet-switch-profile { description "Ethernet virtual LAN/media access control-level options"; uses apply-advanced; leaf-list tag-protocol-id { type string; ordered-by user; description "IEEE 802.1q Tag Protocol Identifier values for VLAN-tagged frames"; } container ethernet-policer-profile { description "Ethernet level CoS-based policer configuration"; uses apply-advanced; container ieee802.1-priority-map { presence "enable ieee802.1-priority-map"; status deprecated; description "Premium priority values for IEEE 802.1p bits"; uses apply-advanced; leaf-list premium { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 7"; } } ordered-by user; description "Premium policer priority map"; } } // container ieee802.1-priority-map container input-priority-map { description "Input policer priority map"; uses cos_policer_input_priority_map; } // container input-priority-map container output-priority-map { description "Output policer priority map"; uses cos_policer_output_priority_map; } // container output-priority-map list policer { key "name"; ordered-by user; description "Policer template definition"; uses cos_policer; } // list policer } // container ethernet-policer-profile container accept-from { status deprecated; description "Accept traffic from or to specified remote MAC"; uses apply-advanced; list mac-address { key "name"; description "Remote MAC"; uses mac_list; } // list mac-address } // container accept-from choice reject-the-rest-choice { leaf reject-the-rest { type empty; status deprecated; description "Accept traffic from only the specified MAC addresses"; } leaf no-reject-the-rest { type empty; status deprecated; description "Don't accept traffic from only the specified MAC addresses"; } } // choice reject-the-rest-choice leaf mac-learn-enable { type empty; description "Learn MAC addresses dynamically"; } } // container ethernet-switch-profile container mpls { description "MPLS options"; uses mpls_ifd_options; } // container mpls leaf ignore-l3-incompletes { type empty; description "Ignore L3 incomplete errors"; } leaf no-auto-mdix { type empty; description "Disable auto MDI/MDIX"; } leaf ieee-802-3az-eee { type empty; description "IEEE 802.3az Energy Efficient Ethernet(EEE)"; } leaf fec { type enumeration { enum "none" { value 0; description "FEC disabled"; } enum "fec91" { value 1; description "IEEE 802.3bj Clause 91, Reed-Solomon FEC (RS-FEC)"; } enum "fec74" { value 2; description "FEC74 enabled"; } enum "fec108" { value 3; description "IEEE 802.3by Clause 108, Reed-Solomon FEC (RS-FEC) on 25g links"; } } description "Forward Error Correction mode"; } } // container gigether-options container optics-options { description "Optics options"; uses apply-advanced; leaf wavelength { type enumeration { enum "1568.77" { value 0; description "1568.77 nm/191.1003 THz 50/100Ghz spacing"; } enum "1568.36" { value 1; description "1568.36 nm/191.15000 THz 6.25/12.5/50GHz spacing"; } enum "1568.31" { value 2; description "1568.31 nm/191.15625 THz 6.25GHz spacing"; } enum "1568.26" { value 3; description "1568.26 nm/191.16250 THz 6.25/12.5GHz spacing"; } enum "1568.21" { value 4; description "1568.21 nm/191.16875 THz 6.25GHz spacing"; } enum "1568.16" { value 5; description "1568.16 nm/191.17500 THz 6.25/12.5GHz spacing"; } enum "1568.11" { value 6; description "1568.11 nm/191.18125 THz 6.25GHz spacing"; } enum "1568.05" { value 7; description "1568.05 nm/191.18750 THz 6.25/12.5GHz spacing"; } enum "1568.00" { value 8; description "1568.00 nm/191.19375 THz 6.25GHz spacing"; } enum "1567.95" { value 9; description "1567.95 nm/191.20000 THz 6.25/12.5/50/100GHz spacing"; } enum "1567.90" { value 10; description "1567.90 nm/191.20625 THz 6.25GHz spacing"; } enum "1567.85" { value 11; description "1567.85 nm/191.21250 THz 6.25/12.5GHz spacing"; } enum "1567.80" { value 12; description "1567.80 nm/191.21875 THz 6.25GHz spacing"; } enum "1567.75" { value 13; description "1567.75 nm/191.22500 THz 6.25/12.5GHz spacing"; } enum "1567.70" { value 14; description "1567.70 nm/191.23125 THz 6.25GHz spacing"; } enum "1567.64" { value 15; description "1567.64 nm/191.23750 THz 6.25/12.5GHz spacing"; } enum "1567.59" { value 16; description "1567.59 nm/191.24375 THz 6.25GHz spacing"; } enum "1567.54" { value 17; description "1567.54 nm/191.25000 THz 6.25/12.5/50GHz spacing"; } enum "1567.49" { value 18; description "1567.49 nm/191.25625 THz 6.25GHz spacing"; } enum "1567.44" { value 19; description "1567.44 nm/191.26250 THz 6.25/12.5GHz spacing"; } enum "1567.39" { value 20; description "1567.39 nm/191.26875 THz 6.25GHz spacing"; } enum "1567.34" { value 21; description "1567.34 nm/191.27500 THz 6.25/12.5GHz spacing"; } enum "1567.29" { value 22; description "1567.29 nm/191.28125 THz 6.25GHz spacing"; } enum "1567.23" { value 23; description "1567.23 nm/191.28750 THz 6.25/12.5GHz spacing"; } enum "1567.18" { value 24; description "1567.18 nm/191.29375 THz 6.25GHz spacing"; } enum "1567.13" { value 25; description "1567.13 nm/191.30000 THz 6.25/12.5/50/100GHz spacing"; } enum "1567.08" { value 26; description "1567.08 nm/191.30625 THz 6.25GHz spacing"; } enum "1567.03" { value 27; description "1567.03 nm/191.31250 THz 6.25/12.5GHz spacing"; } enum "1566.98" { value 28; description "1566.98 nm/191.31875 THz 6.25GHz spacing"; } enum "1566.93" { value 29; description "1566.93 nm/191.32500 THz 6.25/12.5GHz spacing"; } enum "1566.88" { value 30; description "1566.88 nm/191.33125 THz 6.25GHz spacing"; } enum "1566.83" { value 31; description "1566.83 nm/191.33750 THz 6.25/12.5GHz spacing"; } enum "1566.77" { value 32; description "1566.77 nm/191.34375 THz 6.25GHz spacing"; } enum "1566.72" { value 33; description "1566.72 nm/191.35000 THz 6.25/12.5/50GHz spacing"; } enum "1566.67" { value 34; description "1566.67 nm/191.35625 THz 6.25GHz spacing"; } enum "1566.62" { value 35; description "1566.62 nm/191.36250 THz 6.25/12.5GHz spacing"; } enum "1566.57" { value 36; description "1566.57 nm/191.36875 THz 6.25GHz spacing"; } enum "1566.52" { value 37; description "1566.52 nm/191.37500 THz 6.25/12.5/75GHz spacing"; } enum "1566.47" { value 38; description "1566.47 nm/191.38125 THz 6.25GHz spacing"; } enum "1566.42" { value 39; description "1566.42 nm/191.38750 THz 6.25/12.5GHz spacing"; } enum "1566.36" { value 40; description "1566.36 nm/191.39375 THz 6.25GHz spacing"; } enum "1566.31" { value 41; description "1566.31 nm/191.40000 THz 6.25/12.5/50/100GHz spacing"; } enum "1566.26" { value 42; description "1566.26 nm/191.40625 THz 6.25GHz spacing"; } enum "1566.21" { value 43; description "1566.21 nm/191.41250 THz 6.25/12.5GHz spacing"; } enum "1566.16" { value 44; description "1566.16 nm/191.41875 THz 6.25GHz spacing"; } enum "1566.11" { value 45; description "1566.11 nm/191.42500 THz 6.25/12.5GHz spacing"; } enum "1566.06" { value 46; description "1566.06 nm/191.43125 THz 6.25GHz spacing"; } enum "1566.01" { value 47; description "1566.01 nm/191.43750 THz 6.25/12.5GHz spacing"; } enum "1565.96" { value 48; description "1565.96 nm/191.44375 THz 6.25GHz spacing"; } enum "1565.90" { value 49; description "1565.90 nm/191.45000 THz 6.25/12.5/50/75GHz spacing"; } enum "1565.85" { value 50; description "1565.85 nm/191.45625 THz 6.25GHz spacing"; } enum "1565.80" { value 51; description "1565.80 nm/191.46250 THz 6.25/12.5GHz spacing"; } enum "1565.75" { value 52; description "1565.75 nm/191.46875 THz 6.25GHz spacing"; } enum "1565.70" { value 53; description "1565.70 nm/191.47500 THz 6.25/12.5GHz spacing"; } enum "1565.65" { value 54; description "1565.65 nm/191.48125 THz 6.25GHz spacing"; } enum "1565.60" { value 55; description "1565.60 nm/191.48750 THz 6.25/12.5GHz spacing"; } enum "1565.55" { value 56; description "1565.55 nm/191.49375 THz 6.25GHz spacing"; } enum "1565.50" { value 57; description "1565.50 nm/191.50000 THz 6.25/12.5/50/100GHz spacing"; } enum "1565.44" { value 58; description "1565.44 nm/191.50625 THz 6.25GHz spacing"; } enum "1565.39" { value 59; description "1565.39 nm/191.51250 THz 6.25/12.5GHz spacing"; } enum "1565.34" { value 60; description "1565.34 nm/191.51875 THz 6.25GHz spacing"; } enum "1565.29" { value 61; description "1565.29 nm/191.52500 THz 6.25/12.5/75GHz spacing"; } enum "1565.24" { value 62; description "1565.24 nm/191.53125 THz 6.25GHz spacing"; } enum "1565.19" { value 63; description "1565.19 nm/191.53750 THz 6.25/12.5GHz spacing"; } enum "1565.14" { value 64; description "1565.14 nm/191.54375 THz 6.25GHz spacing"; } enum "1565.09" { value 65; description "1565.09 nm/191.55000 THz 6.25/12.5/50GHz spacing"; } enum "1565.04" { value 66; description "1565.04 nm/191.55625 THz 6.25GHz spacing"; } enum "1564.99" { value 67; description "1564.99 nm/191.56250 THz 6.25/12.5GHz spacing"; } enum "1564.93" { value 68; description "1564.93 nm/191.56875 THz 6.25GHz spacing"; } enum "1564.88" { value 69; description "1564.88 nm/191.57500 THz 6.25/12.5GHz spacing"; } enum "1564.83" { value 70; description "1564.83 nm/191.58125 THz 6.25GHz spacing"; } enum "1564.78" { value 71; description "1564.78 nm/191.58750 THz 6.25/12.5GHz spacing"; } enum "1564.73" { value 72; description "1564.73 nm/191.59375 THz 6.25GHz spacing"; } enum "1564.68" { value 73; description "1564.68 nm/191.60000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1564.63" { value 74; description "1564.63 nm/191.60625 THz 6.25GHz spacing"; } enum "1564.58" { value 75; description "1564.58 nm/191.61250 THz 6.25/12.5GHz spacing"; } enum "1564.53" { value 76; description "1564.53 nm/191.61875 THz 6.25GHz spacing"; } enum "1564.47" { value 77; description "1564.47 nm/191.62500 THz 6.25/12.5GHz spacing"; } enum "1564.42" { value 78; description "1564.42 nm/191.63125 THz 6.25GHz spacing"; } enum "1564.37" { value 79; description "1564.37 nm/191.63750 THz 6.25/12.5GHz spacing"; } enum "1564.32" { value 80; description "1564.32 nm/191.64375 THz 6.25GHz spacing"; } enum "1564.27" { value 81; description "1564.27 nm/191.65000 THz 6.25/12.5/50GHz spacing"; } enum "1564.22" { value 82; description "1564.22 nm/191.65625 THz 6.25GHz spacing"; } enum "1564.17" { value 83; description "1564.17 nm/191.66250 THz 6.25/12.5GHz spacing"; } enum "1564.12" { value 84; description "1564.12 nm/191.66875 THz 6.25GHz spacing"; } enum "1564.07" { value 85; description "1564.07 nm/191.67500 THz 6.25/12.5/75GHz spacing"; } enum "1564.02" { value 86; description "1564.02 nm/191.68125 THz 6.25GHz spacing"; } enum "1563.96" { value 87; description "1563.96 nm/191.68750 THz 6.25/12.5GHz spacing"; } enum "1563.91" { value 88; description "1563.91 nm/191.69375 THz 6.25GHz spacing"; } enum "1563.86" { value 89; description "1563.86 nm/191.70000 THz 6.25/12.5/50/100GHz spacing"; } enum "1563.81" { value 90; description "1563.81 nm/191.70625 THz 6.25GHz spacing"; } enum "1563.76" { value 91; description "1563.76 nm/191.71250 THz 6.25/12.5GHz spacing"; } enum "1563.71" { value 92; description "1563.71 nm/191.71875 THz 6.25GHz spacing"; } enum "1563.66" { value 93; description "1563.66 nm/191.72500 THz 6.25/12.5GHz spacing"; } enum "1563.61" { value 94; description "1563.61 nm/191.73125 THz 6.25GHz spacing"; } enum "1563.56" { value 95; description "1563.56 nm/191.73750 THz 6.25/12.5GHz spacing"; } enum "1563.51" { value 96; description "1563.51 nm/191.74375 THz 6.25GHz spacing"; } enum "1563.45" { value 97; description "1563.45 nm/191.75000 THz 6.25/12.5/50/75GHz spacing"; } enum "1563.40" { value 98; description "1563.40 nm/191.75625 THz 6.25GHz spacing"; } enum "1563.35" { value 99; description "1563.35 nm/191.76250 THz 6.25/12.5GHz spacing"; } enum "1563.30" { value 100; description "1563.30 nm/191.76875 THz 6.25GHz spacing"; } enum "1563.25" { value 101; description "1563.25 nm/191.77500 THz 6.25/12.5GHz spacing"; } enum "1563.20" { value 102; description "1563.20 nm/191.78125 THz 6.25GHz spacing"; } enum "1563.15" { value 103; description "1563.15 nm/191.78750 THz 6.25/12.5GHz spacing"; } enum "1563.10" { value 104; description "1563.10 nm/191.79375 THz 6.25GHz spacing"; } enum "1563.05" { value 105; description "1563.05 nm/191.80000 THz 6.25/12.5/50/100GHz spacing"; } enum "1563.00" { value 106; description "1563.00 nm/191.80625 THz 6.25GHz spacing"; } enum "1562.95" { value 107; description "1562.95 nm/191.81250 THz 6.25/12.5GHz spacing"; } enum "1562.89" { value 108; description "1562.89 nm/191.81875 THz 6.25GHz spacing"; } enum "1562.84" { value 109; description "1562.84 nm/191.82500 THz 6.25/12.5/75GHz spacing"; } enum "1562.79" { value 110; description "1562.79 nm/191.83125 THz 6.25GHz spacing"; } enum "1562.74" { value 111; description "1562.74 nm/191.83750 THz 6.25/12.5GHz spacing"; } enum "1562.69" { value 112; description "1562.69 nm/191.84375 THz 6.25GHz spacing"; } enum "1562.64" { value 113; description "1562.64 nm/191.85000 THz 6.25/12.5/50GHz spacing"; } enum "1562.59" { value 114; description "1562.59 nm/191.85625 THz 6.25GHz spacing"; } enum "1562.54" { value 115; description "1562.54 nm/191.86250 THz 6.25/12.5GHz spacing"; } enum "1562.49" { value 116; description "1562.49 nm/191.86875 THz 6.25GHz spacing"; } enum "1562.44" { value 117; description "1562.44 nm/191.87500 THz 6.25/12.5GHz spacing"; } enum "1562.39" { value 118; description "1562.39 nm/191.88125 THz 6.25GHz spacing"; } enum "1562.33" { value 119; description "1562.33 nm/191.88750 THz 6.25/12.5GHz spacing"; } enum "1562.28" { value 120; description "1562.28 nm/191.89375 THz 6.25GHz spacing"; } enum "1562.23" { value 121; description "1562.23 nm/191.90000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1562.18" { value 122; description "1562.18 nm/191.90625 THz 6.25GHz spacing"; } enum "1562.13" { value 123; description "1562.13 nm/191.91250 THz 6.25/12.5GHz spacing"; } enum "1562.08" { value 124; description "1562.08 nm/191.91875 THz 6.25GHz spacing"; } enum "1562.03" { value 125; description "1562.03 nm/191.92500 THz 6.25/12.5GHz spacing"; } enum "1561.98" { value 126; description "1561.98 nm/191.93125 THz 6.25GHz spacing"; } enum "1561.93" { value 127; description "1561.93 nm/191.93750 THz 6.25/12.5GHz spacing"; } enum "1561.88" { value 128; description "1561.88 nm/191.94375 THz 6.25GHz spacing"; } enum "1561.83" { value 129; description "1561.83 nm/191.95000 THz 6.25/12.5/50GHz spacing"; } enum "1561.77" { value 130; description "1561.77 nm/191.95625 THz 6.25GHz spacing"; } enum "1561.72" { value 131; description "1561.72 nm/191.96250 THz 6.25/12.5GHz spacing"; } enum "1561.67" { value 132; description "1561.67 nm/191.96875 THz 6.25GHz spacing"; } enum "1561.62" { value 133; description "1561.62 nm/191.97500 THz 6.25/12.5/75GHz spacing"; } enum "1561.57" { value 134; description "1561.57 nm/191.98125 THz 6.25GHz spacing"; } enum "1561.52" { value 135; description "1561.52 nm/191.98750 THz 6.25/12.5GHz spacing"; } enum "1561.47" { value 136; description "1561.47 nm/191.99375 THz 6.25GHz spacing"; } enum "1561.42" { value 137; description "1561.42 nm/192.00000 THz 6.25/12.5/50/100GHz spacing"; } enum "1561.37" { value 138; description "1561.37 nm/192.00625 THz 6.25GHz spacing"; } enum "1561.32" { value 139; description "1561.32 nm/192.01250 THz 6.25/12.5GHz spacing"; } enum "1561.27" { value 140; description "1561.27 nm/192.01875 THz 6.25GHz spacing"; } enum "1561.22" { value 141; description "1561.22 nm/192.02500 THz 6.25/12.5GHz spacing"; } enum "1561.16" { value 142; description "1561.16 nm/192.03125 THz 6.25GHz spacing"; } enum "1561.11" { value 143; description "1561.11 nm/192.03750 THz 6.25/12.5GHz spacing"; } enum "1561.06" { value 144; description "1561.06 nm/192.04375 THz 6.25GHz spacing"; } enum "1561.01" { value 145; description "1561.01 nm/192.05000 THz 6.25/12.5/50G/75Hz spacing"; } enum "1560.96" { value 146; description "1560.96 nm/192.05625 THz 6.25GHz spacing"; } enum "1560.91" { value 147; description "1560.91 nm/192.06250 THz 6.25/12.5GHz spacing"; } enum "1560.86" { value 148; description "1560.86 nm/192.06875 THz 6.25GHz spacing"; } enum "1560.81" { value 149; description "1560.81 nm/192.07500 THz 6.25/12.5GHz spacing"; } enum "1560.76" { value 150; description "1560.76 nm/192.08125 THz 6.25GHz spacing"; } enum "1560.71" { value 151; description "1560.71 nm/192.08750 THz 6.25/12.5GHz spacing"; } enum "1560.66" { value 152; description "1560.66 nm/192.09375 THz 6.25GHz spacing"; } enum "1560.61" { value 153; description "1560.61 nm/192.10000 THz 6.25/12.5/50/100GHz spacing"; } enum "1560.56" { value 154; description "1560.56 nm/192.10625 THz 6.25GHz spacing"; } enum "1560.50" { value 155; description "1560.50 nm/192.11250 THz 6.25/12.5GHz spacing"; } enum "1560.45" { value 156; description "1560.45 nm/192.11875 THz 6.25GHz spacing"; } enum "1560.40" { value 157; description "1560.40 nm/192.12500 THz 6.25/12.5/75GHz spacing"; } enum "1560.35" { value 158; description "1560.35 nm/192.13125 THz 6.25GHz spacing"; } enum "1560.30" { value 159; description "1560.30 nm/192.13750 THz 6.25/12.5GHz spacing"; } enum "1560.25" { value 160; description "1560.25 nm/192.14375 THz 6.25GHz spacing"; } enum "1560.20" { value 161; description "1560.20 nm/192.15000 THz 6.25/12.5/50GHz spacing"; } enum "1560.15" { value 162; description "1560.15 nm/192.15625 THz 6.25GHz spacing"; } enum "1560.10" { value 163; description "1560.10 nm/192.16250 THz 6.25/12.5GHz spacing"; } enum "1560.05" { value 164; description "1560.05 nm/192.16875 THz 6.25GHz spacing"; } enum "1560.00" { value 165; description "1560.00 nm/192.17500 THz 6.25/12.5GHz spacing"; } enum "1559.95" { value 166; description "1559.95 nm/192.18125 THz 6.25GHz spacing"; } enum "1559.90" { value 167; description "1559.90 nm/192.18750 THz 6.25/12.5GHz spacing"; } enum "1559.84" { value 168; description "1559.84 nm/192.19375 THz 6.25GHz spacing"; } enum "1559.79" { value 169; description "1559.79 nm/192.20000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1559.74" { value 170; description "1559.74 nm/192.20625 THz 6.25GHz spacing"; } enum "1559.69" { value 171; description "1559.69 nm/192.21250 THz 6.25/12.5GHz spacing"; } enum "1559.64" { value 172; description "1559.64 nm/192.21875 THz 6.25GHz spacing"; } enum "1559.59" { value 173; description "1559.59 nm/192.22500 THz 6.25/12.5GHz spacing"; } enum "1559.54" { value 174; description "1559.54 nm/192.23125 THz 6.25GHz spacing"; } enum "1559.49" { value 175; description "1559.49 nm/192.23750 THz 6.25/12.5GHz spacing"; } enum "1559.44" { value 176; description "1559.44 nm/192.24375 THz 6.25GHz spacing"; } enum "1559.39" { value 177; description "1559.39 nm/192.25000 THz 6.25/12.5/50GHz spacing"; } enum "1559.34" { value 178; description "1559.34 nm/192.25625 THz 6.25GHz spacing"; } enum "1559.29" { value 179; description "1559.29 nm/192.26250 THz 6.25/12.5GHz spacing"; } enum "1559.24" { value 180; description "1559.24 nm/192.26875 THz 6.25GHz spacing"; } enum "1559.19" { value 181; description "1559.19 nm/192.27500 THz 6.25/12.5/75GHz spacing"; } enum "1559.14" { value 182; description "1559.14 nm/192.28125 THz 6.25GHz spacing"; } enum "1559.08" { value 183; description "1559.08 nm/192.28750 THz 6.25/12.5GHz spacing"; } enum "1559.03" { value 184; description "1559.03 nm/192.29375 THz 6.25GHz spacing"; } enum "1558.98" { value 185; description "1558.98 nm/192.30000 THz 6.25/12.5/50/100GHz spacing"; } enum "1558.93" { value 186; description "1558.93 nm/192.30625 THz 6.25GHz spacing"; } enum "1558.88" { value 187; description "1558.88 nm/192.31250 THz 6.25/12.5GHz spacing"; } enum "1558.83" { value 188; description "1558.83 nm/192.31875 THz 6.25GHz spacing"; } enum "1558.78" { value 189; description "1558.78 nm/192.32500 THz 6.25/12.5GHz spacing"; } enum "1558.73" { value 190; description "1558.73 nm/192.33125 THz 6.25GHz spacing"; } enum "1558.68" { value 191; description "1558.68 nm/192.33750 THz 6.25/12.5GHz spacing"; } enum "1558.63" { value 192; description "1558.63 nm/192.34375 THz 6.25GHz spacing"; } enum "1558.58" { value 193; description "1558.58 nm/192.35000 THz 6.25/12.5/50/75GHz spacing"; } enum "1558.53" { value 194; description "1558.53 nm/192.35625 THz 6.25GHz spacing"; } enum "1558.48" { value 195; description "1558.48 nm/192.36250 THz 6.25/12.5GHz spacing"; } enum "1558.43" { value 196; description "1558.43 nm/192.36875 THz 6.25GHz spacing"; } enum "1558.38" { value 197; description "1558.38 nm/192.37500 THz 6.25/12.5GHz spacing"; } enum "1558.32" { value 198; description "1558.32 nm/192.38125 THz 6.25GHz spacing"; } enum "1558.27" { value 199; description "1558.27 nm/192.38750 THz 6.25/12.5GHz spacing"; } enum "1558.22" { value 200; description "1558.22 nm/192.39375 THz 6.25GHz spacing"; } enum "1558.17" { value 201; description "1558.17 nm/192.40000 THz 6.25/12.5/50/100GHz spacing"; } enum "1558.12" { value 202; description "1558.12 nm/192.40625 THz 6.25GHz spacing"; } enum "1558.07" { value 203; description "1558.07 nm/192.41250 THz 6.25/12.5GHz spacing"; } enum "1558.02" { value 204; description "1558.02 nm/192.41875 THz 6.25GHz spacing"; } enum "1557.97" { value 205; description "1557.97 nm/192.42500 THz 6.25/12.5/75GHz spacing"; } enum "1557.92" { value 206; description "1557.92 nm/192.43125 THz 6.25GHz spacing"; } enum "1557.87" { value 207; description "1557.87 nm/192.43750 THz 6.25/12.5GHz spacing"; } enum "1557.82" { value 208; description "1557.82 nm/192.44375 THz 6.25GHz spacing"; } enum "1557.77" { value 209; description "1557.77 nm/192.45000 THz 6.25/12.5/50GHz spacing"; } enum "1557.72" { value 210; description "1557.72 nm/192.45625 THz 6.25GHz spacing"; } enum "1557.67" { value 211; description "1557.67 nm/192.46250 THz 6.25/12.5GHz spacing"; } enum "1557.62" { value 212; description "1557.62 nm/192.46875 THz 6.25GHz spacing"; } enum "1557.57" { value 213; description "1557.57 nm/192.47500 THz 6.25/12.5GHz spacing"; } enum "1557.52" { value 214; description "1557.52 nm/192.48125 THz 6.25GHz spacing"; } enum "1557.46" { value 215; description "1557.46 nm/192.48750 THz 6.25/12.5GHz spacing"; } enum "1557.41" { value 216; description "1557.41 nm/192.49375 THz 6.25GHz spacing"; } enum "1557.36" { value 217; description "1557.36 nm/192.50000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1557.31" { value 218; description "1557.31 nm/192.50625 THz 6.25GHz spacing"; } enum "1557.26" { value 219; description "1557.26 nm/192.51250 THz 6.25/12.5GHz spacing"; } enum "1557.21" { value 220; description "1557.21 nm/192.51875 THz 6.25GHz spacing"; } enum "1557.16" { value 221; description "1557.16 nm/192.52500 THz 6.25/12.5GHz spacing"; } enum "1557.11" { value 222; description "1557.11 nm/192.53125 THz 6.25GHz spacing"; } enum "1557.06" { value 223; description "1557.06 nm/192.53750 THz 6.25/12.5GHz spacing"; } enum "1557.01" { value 224; description "1557.01 nm/192.54375 THz 6.25GHz spacing"; } enum "1556.96" { value 225; description "1556.96 nm/192.55000 THz 6.25/12.5/50GHz spacing"; } enum "1556.91" { value 226; description "1556.91 nm/192.55625 THz 6.25GHz spacing"; } enum "1556.86" { value 227; description "1556.86 nm/192.56250 THz 6.25/12.5GHz spacing"; } enum "1556.81" { value 228; description "1556.81 nm/192.56875 THz 6.25GHz spacing"; } enum "1556.76" { value 229; description "1556.76 nm/192.57500 THz 6.25/12.5/75GHz spacing"; } enum "1556.71" { value 230; description "1556.71 nm/192.58125 THz 6.25GHz spacing"; } enum "1556.66" { value 231; description "1556.66 nm/192.58750 THz 6.25/12.5GHz spacing"; } enum "1556.61" { value 232; description "1556.61 nm/192.59375 THz 6.25GHz spacing"; } enum "1556.55" { value 233; description "1556.55 nm/192.60000 THz 6.25/12.5/50/100GHz spacing"; } enum "1556.50" { value 234; description "1556.50 nm/192.60625 THz 6.25GHz spacing"; } enum "1556.45" { value 235; description "1556.45 nm/192.61250 THz 6.25/12.5GHz spacing"; } enum "1556.40" { value 236; description "1556.40 nm/192.61875 THz 6.25GHz spacing"; } enum "1556.35" { value 237; description "1556.35 nm/192.62500 THz 6.25/12.5GHz spacing"; } enum "1556.30" { value 238; description "1556.30 nm/192.63125 THz 6.25GHz spacing"; } enum "1556.25" { value 239; description "1556.25 nm/192.63750 THz 6.25/12.5GHz spacing"; } enum "1556.20" { value 240; description "1556.20 nm/192.64375 THz 6.25GHz spacing"; } enum "1556.15" { value 241; description "1556.15 nm/192.65000 THz 6.25/12.5/50/75GHz spacing"; } enum "1556.10" { value 242; description "1556.10 nm/192.65625 THz 6.25GHz spacing"; } enum "1556.05" { value 243; description "1556.05 nm/192.66250 THz 6.25/12.5GHz spacing"; } enum "1556.00" { value 244; description "1556.00 nm/192.66875 THz 6.25GHz spacing"; } enum "1555.95" { value 245; description "1555.95 nm/192.67500 THz 6.25/12.5GHz spacing"; } enum "1555.90" { value 246; description "1555.90 nm/192.68125 THz 6.25GHz spacing"; } enum "1555.85" { value 247; description "1555.85 nm/192.68750 THz 6.25/12.5GHz spacing"; } enum "1555.80" { value 248; description "1555.80 nm/192.69375 THz 6.25GHz spacing"; } enum "1555.75" { value 249; description "1555.75 nm/192.70000 THz 6.25/12.5/50/100GHz spacing"; } enum "1555.70" { value 250; description "1555.70 nm/192.70625 THz 6.25GHz spacing"; } enum "1555.65" { value 251; description "1555.65 nm/192.71250 THz 6.25/12.5GHz spacing"; } enum "1555.60" { value 252; description "1555.60 nm/192.71875 THz 6.25GHz spacing"; } enum "1555.55" { value 253; description "1555.55 nm/192.72500 THz 6.25/12.5/75GHz spacing"; } enum "1555.49" { value 254; description "1555.49 nm/192.73125 THz 6.25GHz spacing"; } enum "1555.44" { value 255; description "1555.44 nm/192.73750 THz 6.25/12.5GHz spacing"; } enum "1555.39" { value 256; description "1555.39 nm/192.74375 THz 6.25GHz spacing"; } enum "1555.34" { value 257; description "1555.34 nm/192.75000 THz 6.25/12.5/50GHz spacing"; } enum "1555.29" { value 258; description "1555.29 nm/192.75625 THz 6.25GHz spacing"; } enum "1555.24" { value 259; description "1555.24 nm/192.76250 THz 6.25/12.5GHz spacing"; } enum "1555.19" { value 260; description "1555.19 nm/192.76875 THz 6.25GHz spacing"; } enum "1555.14" { value 261; description "1555.14 nm/192.77500 THz 6.25/12.5GHz spacing"; } enum "1555.09" { value 262; description "1555.09 nm/192.78125 THz 6.25GHz spacing"; } enum "1555.04" { value 263; description "1555.04 nm/192.78750 THz 6.25/12.5GHz spacing"; } enum "1554.99" { value 264; description "1554.99 nm/192.79375 THz 6.25GHz spacing"; } enum "1554.94" { value 265; description "1554.94 nm/192.80000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1554.89" { value 266; description "1554.89 nm/192.80625 THz 6.25GHz spacing"; } enum "1554.84" { value 267; description "1554.84 nm/192.81250 THz 6.25/12.5GHz spacing"; } enum "1554.79" { value 268; description "1554.79 nm/192.81875 THz 6.25GHz spacing"; } enum "1554.74" { value 269; description "1554.74 nm/192.82500 THz 6.25/12.5GHz spacing"; } enum "1554.69" { value 270; description "1554.69 nm/192.83125 THz 6.25GHz spacing"; } enum "1554.64" { value 271; description "1554.64 nm/192.83750 THz 6.25/12.5GHz spacing"; } enum "1554.59" { value 272; description "1554.59 nm/192.84375 THz 6.25GHz spacing"; } enum "1554.54" { value 273; description "1554.54 nm/192.85000 THz 6.25/12.5/50GHz spacing"; } enum "1554.49" { value 274; description "1554.49 nm/192.85625 THz 6.25GHz spacing"; } enum "1554.44" { value 275; description "1554.44 nm/192.86250 THz 6.25/12.5GHz spacing"; } enum "1554.39" { value 276; description "1554.39 nm/192.86875 THz 6.25GHz spacing"; } enum "1554.34" { value 277; description "1554.34 nm/192.87500 THz 6.25/12.5/75GHz spacing"; } enum "1554.29" { value 278; description "1554.29 nm/192.88125 THz 6.25GHz spacing"; } enum "1554.23" { value 279; description "1554.23 nm/192.88750 THz 6.25/12.5GHz spacing"; } enum "1554.18" { value 280; description "1554.18 nm/192.89375 THz 6.25GHz spacing"; } enum "1554.13" { value 281; description "1554.13 nm/192.90000 THz 6.25/12.5/50/100GHz spacing"; } enum "1554.08" { value 282; description "1554.08 nm/192.90625 THz 6.25GHz spacing"; } enum "1554.03" { value 283; description "1554.03 nm/192.91250 THz 6.25/12.5GHz spacing"; } enum "1553.98" { value 284; description "1553.98 nm/192.91875 THz 6.25GHz spacing"; } enum "1553.93" { value 285; description "1553.93 nm/192.92500 THz 6.25/12.5GHz spacing"; } enum "1553.88" { value 286; description "1553.88 nm/192.93125 THz 6.25GHz spacing"; } enum "1553.83" { value 287; description "1553.83 nm/192.93750 THz 6.25/12.5GHz spacing"; } enum "1553.78" { value 288; description "1553.78 nm/192.94375 THz 6.25GHz spacing"; } enum "1553.73" { value 289; description "1553.73 nm/192.95000 THz 6.25/12.5/50/75GHz spacing"; } enum "1553.68" { value 290; description "1553.68 nm/192.95625 THz 6.25GHz spacing"; } enum "1553.63" { value 291; description "1553.63 nm/192.96250 THz 6.25/12.5GHz spacing"; } enum "1553.58" { value 292; description "1553.58 nm/192.96875 THz 6.25GHz spacing"; } enum "1553.53" { value 293; description "1553.53 nm/192.97500 THz 6.25/12.5GHz spacing"; } enum "1553.48" { value 294; description "1553.48 nm/192.98125 THz 6.25GHz spacing"; } enum "1553.43" { value 295; description "1553.43 nm/192.98750 THz 6.25/12.5GHz spacing"; } enum "1553.38" { value 296; description "1553.38 nm/192.99375 THz 6.25GHz spacing"; } enum "1553.33" { value 297; description "1553.33 nm/193.00000 THz 6.25/12.5/50/100GHz spacing"; } enum "1553.28" { value 298; description "1553.28 nm/193.00625 THz 6.25GHz spacing"; } enum "1553.23" { value 299; description "1553.23 nm/193.01250 THz 6.25/12.5GHz spacing"; } enum "1553.18" { value 300; description "1553.18 nm/193.01875 THz 6.25GHz spacing"; } enum "1553.13" { value 301; description "1553.13 nm/193.02500 THz 6.25/12.5/75GHz spacing"; } enum "1553.08" { value 302; description "1553.08 nm/193.03125 THz 6.25GHz spacing"; } enum "1553.03" { value 303; description "1553.03 nm/193.03750 THz 6.25/12.5GHz spacing"; } enum "1552.98" { value 304; description "1552.98 nm/193.04375 THz 6.25GHz spacing"; } enum "1552.93" { value 305; description "1552.93 nm/193.05000 THz 6.25/12.5/50GHz spacing"; } enum "1552.88" { value 306; description "1552.88 nm/193.05625 THz 6.25GHz spacing"; } enum "1552.83" { value 307; description "1552.83 nm/193.06250 THz 6.25/12.5GHz spacing"; } enum "1552.78" { value 308; description "1552.78 nm/193.06875 THz 6.25GHz spacing"; } enum "1552.73" { value 309; description "1552.73 nm/193.07500 THz 6.25/12.5GHz spacing"; } enum "1552.68" { value 310; description "1552.68 nm/193.08125 THz 6.25GHz spacing"; } enum "1552.62" { value 311; description "1552.62 nm/193.08750 THz 6.25/12.5GHz spacing"; } enum "1552.57" { value 312; description "1552.57 nm/193.09375 THz 6.25GHz spacing"; } enum "1552.52" { value 313; description "1552.52 nm/193.10000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1552.47" { value 314; description "1552.47 nm/193.10625 THz 6.25GHz spacing"; } enum "1552.42" { value 315; description "1552.42 nm/193.11250 THz 6.25/12.5GHz spacing"; } enum "1552.37" { value 316; description "1552.37 nm/193.11875 THz 6.25GHz spacing"; } enum "1552.32" { value 317; description "1552.32 nm/193.12500 THz 6.25/12.5GHz spacing"; } enum "1552.27" { value 318; description "1552.27 nm/193.13125 THz 6.25GHz spacing"; } enum "1552.22" { value 319; description "1552.22 nm/193.13750 THz 6.25/12.5GHz spacing"; } enum "1552.17" { value 320; description "1552.17 nm/193.14375 THz 6.25GHz spacing"; } enum "1552.12" { value 321; description "1552.12 nm/193.15000 THz 6.25/12.5/50GHz spacing"; } enum "1552.07" { value 322; description "1552.07 nm/193.15625 THz 6.25GHz spacing"; } enum "1552.02" { value 323; description "1552.02 nm/193.16250 THz 6.25/12.5GHz spacing"; } enum "1551.97" { value 324; description "1551.97 nm/193.16875 THz 6.25GHz spacing"; } enum "1551.92" { value 325; description "1551.92 nm/193.17500 THz 6.25/12.5/75GHz spacing"; } enum "1551.87" { value 326; description "1551.87 nm/193.18125 THz 6.25GHz spacing"; } enum "1551.82" { value 327; description "1551.82 nm/193.18750 THz 6.25/12.5GHz spacing"; } enum "1551.77" { value 328; description "1551.77 nm/193.19375 THz 6.25GHz spacing"; } enum "1551.72" { value 329; description "1551.72 nm/193.20000 THz 6.25/12.5/50/100GHz spacing"; } enum "1551.67" { value 330; description "1551.67 nm/193.20625 THz 6.25GHz spacing"; } enum "1551.62" { value 331; description "1551.62 nm/193.21250 THz 6.25/12.5GHz spacing"; } enum "1551.57" { value 332; description "1551.57 nm/193.21875 THz 6.25GHz spacing"; } enum "1551.52" { value 333; description "1551.52 nm/193.22500 THz 6.25/12.5GHz spacing"; } enum "1551.47" { value 334; description "1551.47 nm/193.23125 THz 6.25GHz spacing"; } enum "1551.42" { value 335; description "1551.42 nm/193.23750 THz 6.25/12.5GHz spacing"; } enum "1551.37" { value 336; description "1551.37 nm/193.24375 THz 6.25GHz spacing"; } enum "1551.32" { value 337; description "1551.32 nm/193.25000 THz 6.25/12.5/50/75GHz spacing"; } enum "1551.27" { value 338; description "1551.27 nm/193.25625 THz 6.25GHz spacing"; } enum "1551.22" { value 339; description "1551.22 nm/193.26250 THz 6.25/12.5GHz spacing"; } enum "1551.17" { value 340; description "1551.17 nm/193.26875 THz 6.25GHz spacing"; } enum "1551.12" { value 341; description "1551.12 nm/193.27500 THz 6.25/12.5GHz spacing"; } enum "1551.07" { value 342; description "1551.07 nm/193.28125 THz 6.25GHz spacing"; } enum "1551.02" { value 343; description "1551.02 nm/193.28750 THz 6.25/12.5GHz spacing"; } enum "1550.97" { value 344; description "1550.97 nm/193.29375 THz 6.25GHz spacing"; } enum "1550.92" { value 345; description "1550.92 nm/193.30000 THz 6.25/12.5/50/100GHz spacing"; } enum "1550.87" { value 346; description "1550.87 nm/193.30625 THz 6.25GHz spacing"; } enum "1550.82" { value 347; description "1550.82 nm/193.31250 THz 6.25/12.5GHz spacing"; } enum "1550.77" { value 348; description "1550.77 nm/193.31875 THz 6.25GHz spacing"; } enum "1550.72" { value 349; description "1550.72 nm/193.32500 THz 6.25/12.5/75GHz spacing"; } enum "1550.67" { value 350; description "1550.67 nm/193.33125 THz 6.25GHz spacing"; } enum "1550.62" { value 351; description "1550.62 nm/193.33750 THz 6.25/12.5GHz spacing"; } enum "1550.57" { value 352; description "1550.57 nm/193.34375 THz 6.25GHz spacing"; } enum "1550.52" { value 353; description "1550.52 nm/193.35000 THz 6.25/12.5/50GHz spacing"; } enum "1550.47" { value 354; description "1550.47 nm/193.35625 THz 6.25GHz spacing"; } enum "1550.42" { value 355; description "1550.42 nm/193.36250 THz 6.25/12.5GHz spacing"; } enum "1550.37" { value 356; description "1550.37 nm/193.36875 THz 6.25GHz spacing"; } enum "1550.32" { value 357; description "1550.32 nm/193.37500 THz 6.25/12.5GHz spacing"; } enum "1550.27" { value 358; description "1550.27 nm/193.38125 THz 6.25GHz spacing"; } enum "1550.22" { value 359; description "1550.22 nm/193.38750 THz 6.25/12.5GHz spacing"; } enum "1550.17" { value 360; description "1550.17 nm/193.39375 THz 6.25GHz spacing"; } enum "1550.12" { value 361; description "1550.12 nm/193.40000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1550.07" { value 362; description "1550.07 nm/193.40625 THz 6.25GHz spacing"; } enum "1550.02" { value 363; description "1550.02 nm/193.41250 THz 6.25/12.5GHz spacing"; } enum "1549.97" { value 364; description "1549.97 nm/193.41875 THz 6.25GHz spacing"; } enum "1549.92" { value 365; description "1549.92 nm/193.42500 THz 6.25/12.5GHz spacing"; } enum "1549.87" { value 366; description "1549.87 nm/193.43125 THz 6.25GHz spacing"; } enum "1549.82" { value 367; description "1549.82 nm/193.43750 THz 6.25/12.5GHz spacing"; } enum "1549.77" { value 368; description "1549.77 nm/193.44375 THz 6.25GHz spacing"; } enum "1549.72" { value 369; description "1549.72 nm/193.45000 THz 6.25/12.5/50GHz spacing"; } enum "1549.67" { value 370; description "1549.67 nm/193.45625 THz 6.25GHz spacing"; } enum "1549.62" { value 371; description "1549.62 nm/193.46250 THz 6.25/12.5GHz spacing"; } enum "1549.57" { value 372; description "1549.57 nm/193.46875 THz 6.25GHz spacing"; } enum "1549.52" { value 373; description "1549.52 nm/193.47500 THz 6.25/12.5/75GHz spacing"; } enum "1549.47" { value 374; description "1549.47 nm/193.48125 THz 6.25GHz spacing"; } enum "1549.42" { value 375; description "1549.42 nm/193.48750 THz 6.25/12.5GHz spacing"; } enum "1549.37" { value 376; description "1549.37 nm/193.49375 THz 6.25GHz spacing"; } enum "1549.32" { value 377; description "1549.32 nm/193.50000 THz 6.25/12.5/50/100GHz spacing"; } enum "1549.26" { value 378; description "1549.26 nm/193.50625 THz 6.25GHz spacing"; } enum "1549.21" { value 379; description "1549.21 nm/193.51250 THz 6.25/12.5GHz spacing"; } enum "1549.16" { value 380; description "1549.16 nm/193.51875 THz 6.25GHz spacing"; } enum "1549.11" { value 381; description "1549.11 nm/193.52500 THz 6.25/12.5GHz spacing"; } enum "1549.06" { value 382; description "1549.06 nm/193.53125 THz 6.25GHz spacing"; } enum "1549.01" { value 383; description "1549.01 nm/193.53750 THz 6.25/12.5GHz spacing"; } enum "1548.96" { value 384; description "1548.96 nm/193.54375 THz 6.25GHz spacing"; } enum "1548.91" { value 385; description "1548.91 nm/193.55000 THz 6.25/12.5/50G/75Hz spacing"; } enum "1548.86" { value 386; description "1548.86 nm/193.55625 THz 6.25GHz spacing"; } enum "1548.81" { value 387; description "1548.81 nm/193.56250 THz 6.25/12.5GHz spacing"; } enum "1548.76" { value 388; description "1548.76 nm/193.56875 THz 6.25GHz spacing"; } enum "1548.71" { value 389; description "1548.71 nm/193.57500 THz 6.25/12.5GHz spacing"; } enum "1548.66" { value 390; description "1548.66 nm/193.58125 THz 6.25GHz spacing"; } enum "1548.61" { value 391; description "1548.61 nm/193.58750 THz 6.25/12.5GHz spacing"; } enum "1548.56" { value 392; description "1548.56 nm/193.59375 THz 6.25GHz spacing"; } enum "1548.51" { value 393; description "1548.51 nm/193.60000 THz 6.25/12.5/50/100GHz spacing"; } enum "1548.46" { value 394; description "1548.46 nm/193.60625 THz 6.25GHz spacing"; } enum "1548.41" { value 395; description "1548.41 nm/193.61250 THz 6.25/12.5GHz spacing"; } enum "1548.36" { value 396; description "1548.36 nm/193.61875 THz 6.25GHz spacing"; } enum "1548.31" { value 397; description "1548.31 nm/193.62500 THz 6.25/12.5/75GHz spacing"; } enum "1548.26" { value 398; description "1548.26 nm/193.63125 THz 6.25GHz spacing"; } enum "1548.21" { value 399; description "1548.21 nm/193.63750 THz 6.25/12.5GHz spacing"; } enum "1548.16" { value 400; description "1548.16 nm/193.64375 THz 6.25GHz spacing"; } enum "1548.11" { value 401; description "1548.11 nm/193.65000 THz 6.25/12.5/50GHz spacing"; } enum "1548.06" { value 402; description "1548.06 nm/193.65625 THz 6.25GHz spacing"; } enum "1548.02" { value 403; description "1548.02 nm/193.66250 THz 6.25/12.5GHz spacing"; } enum "1547.97" { value 404; description "1547.97 nm/193.66875 THz 6.25GHz spacing"; } enum "1547.92" { value 405; description "1547.92 nm/193.67500 THz 6.25/12.5GHz spacing"; } enum "1547.87" { value 406; description "1547.87 nm/193.68125 THz 6.25GHz spacing"; } enum "1547.82" { value 407; description "1547.82 nm/193.68750 THz 6.25/12.5GHz spacing"; } enum "1547.77" { value 408; description "1547.77 nm/193.69375 THz 6.25GHz spacing"; } enum "1547.72" { value 409; description "1547.72 nm/193.70000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1547.67" { value 410; description "1547.67 nm/193.70625 THz 6.25GHz spacing"; } enum "1547.62" { value 411; description "1547.62 nm/193.71250 THz 6.25/12.5GHz spacing"; } enum "1547.57" { value 412; description "1547.57 nm/193.71875 THz 6.25GHz spacing"; } enum "1547.52" { value 413; description "1547.52 nm/193.72500 THz 6.25/12.5GHz spacing"; } enum "1547.47" { value 414; description "1547.47 nm/193.73125 THz 6.25GHz spacing"; } enum "1547.42" { value 415; description "1547.42 nm/193.73750 THz 6.25/12.5GHz spacing"; } enum "1547.37" { value 416; description "1547.37 nm/193.74375 THz 6.25GHz spacing"; } enum "1547.32" { value 417; description "1547.32 nm/193.75000 THz 6.25/12.5/50GHz spacing"; } enum "1547.27" { value 418; description "1547.27 nm/193.75625 THz 6.25GHz spacing"; } enum "1547.22" { value 419; description "1547.22 nm/193.76250 THz 6.25/12.5GHz spacing"; } enum "1547.17" { value 420; description "1547.17 nm/193.76875 THz 6.25GHz spacing"; } enum "1547.12" { value 421; description "1547.12 nm/193.77500 THz 6.25/12.5/75GHz spacing"; } enum "1547.07" { value 422; description "1547.07 nm/193.78125 THz 6.25GHz spacing"; } enum "1547.02" { value 423; description "1547.02 nm/193.78750 THz 6.25/12.5GHz spacing"; } enum "1546.97" { value 424; description "1546.97 nm/193.79375 THz 6.25GHz spacing"; } enum "1546.92" { value 425; description "1546.92 nm/193.80000 THz 6.25/12.5/50/100GHz spacing"; } enum "1546.87" { value 426; description "1546.87 nm/193.80625 THz 6.25GHz spacing"; } enum "1546.82" { value 427; description "1546.82 nm/193.81250 THz 6.25/12.5GHz spacing"; } enum "1546.77" { value 428; description "1546.77 nm/193.81875 THz 6.25GHz spacing"; } enum "1546.72" { value 429; description "1546.72 nm/193.82500 THz 6.25/12.5GHz spacing"; } enum "1546.67" { value 430; description "1546.67 nm/193.83125 THz 6.25GHz spacing"; } enum "1546.62" { value 431; description "1546.62 nm/193.83750 THz 6.25/12.5GHz spacing"; } enum "1546.57" { value 432; description "1546.57 nm/193.84375 THz 6.25GHz spacing"; } enum "1546.52" { value 433; description "1546.52 nm/193.85000 THz 6.25/12.5/50/75GHz spacing"; } enum "1546.47" { value 434; description "1546.47 nm/193.85625 THz 6.25GHz spacing"; } enum "1546.42" { value 435; description "1546.42 nm/193.86250 THz 6.25/12.5GHz spacing"; } enum "1546.37" { value 436; description "1546.37 nm/193.86875 THz 6.25GHz spacing"; } enum "1546.32" { value 437; description "1546.32 nm/193.87500 THz 6.25/12.5GHz spacing"; } enum "1546.27" { value 438; description "1546.27 nm/193.88125 THz 6.25GHz spacing"; } enum "1546.22" { value 439; description "1546.22 nm/193.88750 THz 6.25/12.5GHz spacing"; } enum "1546.17" { value 440; description "1546.17 nm/193.89375 THz 6.25GHz spacing"; } enum "1546.12" { value 441; description "1546.12 nm/193.90000 THz 6.25/12.5/50/100GHz spacing"; } enum "1546.07" { value 442; description "1546.07 nm/193.90625 THz 6.25GHz spacing"; } enum "1546.02" { value 443; description "1546.02 nm/193.91250 THz 6.25/12.5GHz spacing"; } enum "1545.97" { value 444; description "1545.97 nm/193.91875 THz 6.25GHz spacing"; } enum "1545.92" { value 445; description "1545.92 nm/193.92500 THz 6.25/12.5/75GHz spacing"; } enum "1545.87" { value 446; description "1545.87 nm/193.93125 THz 6.25GHz spacing"; } enum "1545.82" { value 447; description "1545.82 nm/193.93750 THz 6.25/12.5GHz spacing"; } enum "1545.77" { value 448; description "1545.77 nm/193.94375 THz 6.25GHz spacing"; } enum "1545.72" { value 449; description "1545.72 nm/193.95000 THz 6.25/12.5/50GHz spacing"; } enum "1545.67" { value 450; description "1545.67 nm/193.95625 THz 6.25GHz spacing"; } enum "1545.62" { value 451; description "1545.62 nm/193.96250 THz 6.25/12.5GHz spacing"; } enum "1545.57" { value 452; description "1545.57 nm/193.96875 THz 6.25GHz spacing"; } enum "1545.52" { value 453; description "1545.52 nm/193.97500 THz 6.25/12.5GHz spacing"; } enum "1545.47" { value 454; description "1545.47 nm/193.98125 THz 6.25GHz spacing"; } enum "1545.42" { value 455; description "1545.42 nm/193.98750 THz 6.25/12.5GHz spacing"; } enum "1545.37" { value 456; description "1545.37 nm/193.99375 THz 6.25GHz spacing"; } enum "1545.32" { value 457; description "1545.32 nm/194.00000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1545.27" { value 458; description "1545.27 nm/194.00625 THz 6.25GHz spacing"; } enum "1545.22" { value 459; description "1545.22 nm/194.01250 THz 6.25/12.5GHz spacing"; } enum "1545.17" { value 460; description "1545.17 nm/194.01875 THz 6.25GHz spacing"; } enum "1545.12" { value 461; description "1545.12 nm/194.02500 THz 6.25/12.5GHz spacing"; } enum "1545.07" { value 462; description "1545.07 nm/194.03125 THz 6.25GHz spacing"; } enum "1545.02" { value 463; description "1545.02 nm/194.03750 THz 6.25/12.5GHz spacing"; } enum "1544.97" { value 464; description "1544.97 nm/194.04375 THz 6.25GHz spacing"; } enum "1544.92" { value 465; description "1544.92 nm/194.05000 THz 6.25/12.5/50GHz spacing"; } enum "1544.87" { value 466; description "1544.87 nm/194.05625 THz 6.25GHz spacing"; } enum "1544.82" { value 467; description "1544.82 nm/194.06250 THz 6.25/12.5GHz spacing"; } enum "1544.77" { value 468; description "1544.77 nm/194.06875 THz 6.25GHz spacing"; } enum "1544.72" { value 469; description "1544.72 nm/194.07500 THz 6.25/12.5/75GHz spacing"; } enum "1544.68" { value 470; description "1544.68 nm/194.08125 THz 6.25GHz spacing"; } enum "1544.63" { value 471; description "1544.63 nm/194.08750 THz 6.25/12.5GHz spacing"; } enum "1544.58" { value 472; description "1544.58 nm/194.09375 THz 6.25GHz spacing"; } enum "1544.53" { value 473; description "1544.53 nm/194.10000 THz 6.25/12.5/50/100GHz spacing"; } enum "1544.48" { value 474; description "1544.48 nm/194.10625 THz 6.25GHz spacing"; } enum "1544.43" { value 475; description "1544.43 nm/194.11250 THz 6.25/12.5GHz spacing"; } enum "1544.38" { value 476; description "1544.38 nm/194.11875 THz 6.25GHz spacing"; } enum "1544.33" { value 477; description "1544.33 nm/194.12500 THz 6.25/12.5GHz spacing"; } enum "1544.28" { value 478; description "1544.28 nm/194.13125 THz 6.25GHz spacing"; } enum "1544.23" { value 479; description "1544.23 nm/194.13750 THz 6.25/12.5GHz spacing"; } enum "1544.18" { value 480; description "1544.18 nm/194.14375 THz 6.25GHz spacing"; } enum "1544.13" { value 481; description "1544.13 nm/194.15000 THz 6.25/12.5/50/75GHz spacing"; } enum "1544.08" { value 482; description "1544.08 nm/194.15625 THz 6.25GHz spacing"; } enum "1544.03" { value 483; description "1544.03 nm/194.16250 THz 6.25/12.5GHz spacing"; } enum "1543.98" { value 484; description "1543.98 nm/194.16875 THz 6.25GHz spacing"; } enum "1543.93" { value 485; description "1543.93 nm/194.17500 THz 6.25/12.5GHz spacing"; } enum "1543.88" { value 486; description "1543.88 nm/194.18125 THz 6.25GHz spacing"; } enum "1543.83" { value 487; description "1543.83 nm/194.18750 THz 6.25/12.5GHz spacing"; } enum "1543.78" { value 488; description "1543.78 nm/194.19375 THz 6.25GHz spacing"; } enum "1543.73" { value 489; description "1543.73 nm/194.20000 THz 6.25/12.5/50/100GHz spacing"; } enum "1543.68" { value 490; description "1543.68 nm/194.20625 THz 6.25GHz spacing"; } enum "1543.63" { value 491; description "1543.63 nm/194.21250 THz 6.25/12.5GHz spacing"; } enum "1543.58" { value 492; description "1543.58 nm/194.21875 THz 6.25GHz spacing"; } enum "1543.53" { value 493; description "1543.53 nm/194.22500 THz 6.25/12.5/75GHz spacing"; } enum "1543.48" { value 494; description "1543.48 nm/194.23125 THz 6.25GHz spacing"; } enum "1543.43" { value 495; description "1543.43 nm/194.23750 THz 6.25/12.5GHz spacing"; } enum "1543.38" { value 496; description "1543.38 nm/194.24375 THz 6.25GHz spacing"; } enum "1543.33" { value 497; description "1543.33 nm/194.25000 THz 6.25/12.5/50GHz spacing"; } enum "1543.28" { value 498; description "1543.28 nm/194.25625 THz 6.25GHz spacing"; } enum "1543.23" { value 499; description "1543.23 nm/194.26250 THz 6.25/12.5GHz spacing"; } enum "1543.18" { value 500; description "1543.18 nm/194.26875 THz 6.25GHz spacing"; } enum "1543.13" { value 501; description "1543.13 nm/194.27500 THz 6.25/12.5GHz spacing"; } enum "1543.08" { value 502; description "1543.08 nm/194.28125 THz 6.25GHz spacing"; } enum "1543.04" { value 503; description "1543.04 nm/194.28750 THz 6.25/12.5GHz spacing"; } enum "1542.99" { value 504; description "1542.99 nm/194.29375 THz 6.25GHz spacing"; } enum "1542.94" { value 505; description "1542.94 nm/194.30000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1542.89" { value 506; description "1542.89 nm/194.30625 THz 6.25GHz spacing"; } enum "1542.84" { value 507; description "1542.84 nm/194.31250 THz 6.25/12.5GHz spacing"; } enum "1542.79" { value 508; description "1542.79 nm/194.31875 THz 6.25GHz spacing"; } enum "1542.74" { value 509; description "1542.74 nm/194.32500 THz 6.25/12.5GHz spacing"; } enum "1542.69" { value 510; description "1542.69 nm/194.33125 THz 6.25GHz spacing"; } enum "1542.64" { value 511; description "1542.64 nm/194.33750 THz 6.25/12.5GHz spacing"; } enum "1542.59" { value 512; description "1542.59 nm/194.34375 THz 6.25GHz spacing"; } enum "1542.54" { value 513; description "1542.54 nm/194.35000 THz 6.25/12.5/50GHz spacing"; } enum "1542.49" { value 514; description "1542.49 nm/194.35625 THz 6.25GHz spacing"; } enum "1542.44" { value 515; description "1542.44 nm/194.36250 THz 6.25/12.5GHz spacing"; } enum "1542.39" { value 516; description "1542.39 nm/194.36875 THz 6.25GHz spacing"; } enum "1542.34" { value 517; description "1542.34 nm/194.37500 THz 6.25/12.5/75GHz spacing"; } enum "1542.29" { value 518; description "1542.29 nm/194.38125 THz 6.25GHz spacing"; } enum "1542.24" { value 519; description "1542.24 nm/194.38750 THz 6.25/12.5GHz spacing"; } enum "1542.19" { value 520; description "1542.19 nm/194.39375 THz 6.25GHz spacing"; } enum "1542.14" { value 521; description "1542.14 nm/194.40000 THz 6.25/12.5/50/100GHz spacing"; } enum "1542.09" { value 522; description "1542.09 nm/194.40625 THz 6.25GHz spacing"; } enum "1542.04" { value 523; description "1542.04 nm/194.41250 THz 6.25/12.5GHz spacing"; } enum "1541.99" { value 524; description "1541.99 nm/194.41875 THz 6.25GHz spacing"; } enum "1541.94" { value 525; description "1541.94 nm/194.42500 THz 6.25/12.5GHz spacing"; } enum "1541.89" { value 526; description "1541.89 nm/194.43125 THz 6.25GHz spacing"; } enum "1541.84" { value 527; description "1541.84 nm/194.43750 THz 6.25/12.5GHz spacing"; } enum "1541.80" { value 528; description "1541.80 nm/194.44375 THz 6.25GHz spacing"; } enum "1541.75" { value 529; description "1541.75 nm/194.45000 THz 6.25/12.5/50/75GHz spacing"; } enum "1541.70" { value 530; description "1541.70 nm/194.45625 THz 6.25GHz spacing"; } enum "1541.65" { value 531; description "1541.65 nm/194.46250 THz 6.25/12.5GHz spacing"; } enum "1541.60" { value 532; description "1541.60 nm/194.46875 THz 6.25GHz spacing"; } enum "1541.55" { value 533; description "1541.55 nm/194.47500 THz 6.25/12.5GHz spacing"; } enum "1541.50" { value 534; description "1541.50 nm/194.48125 THz 6.25GHz spacing"; } enum "1541.45" { value 535; description "1541.45 nm/194.48750 THz 6.25/12.5GHz spacing"; } enum "1541.40" { value 536; description "1541.40 nm/194.49375 THz 6.25GHz spacing"; } enum "1541.35" { value 537; description "1541.35 nm/194.50000 THz 6.25/12.5/50/100GHz spacing"; } enum "1541.30" { value 538; description "1541.30 nm/194.50625 THz 6.25GHz spacing"; } enum "1541.25" { value 539; description "1541.25 nm/194.51250 THz 6.25/12.5GHz spacing"; } enum "1541.20" { value 540; description "1541.20 nm/194.51875 THz 6.25GHz spacing"; } enum "1541.15" { value 541; description "1541.15 nm/194.52500 THz 6.25/12.5/75GHz spacing"; } enum "1541.10" { value 542; description "1541.10 nm/194.53125 THz 6.25GHz spacing"; } enum "1541.05" { value 543; description "1541.05 nm/194.53750 THz 6.25/12.5GHz spacing"; } enum "1541.00" { value 544; description "1541.00 nm/194.54375 THz 6.25GHz spacing"; } enum "1540.95" { value 545; description "1540.95 nm/194.55000 THz 6.25/12.5/50GHz spacing"; } enum "1540.90" { value 546; description "1540.90 nm/194.55625 THz 6.25GHz spacing"; } enum "1540.85" { value 547; description "1540.85 nm/194.56250 THz 6.25/12.5GHz spacing"; } enum "1540.80" { value 548; description "1540.80 nm/194.56875 THz 6.25GHz spacing"; } enum "1540.76" { value 549; description "1540.76 nm/194.57500 THz 6.25/12.5GHz spacing"; } enum "1540.71" { value 550; description "1540.71 nm/194.58125 THz 6.25GHz spacing"; } enum "1540.66" { value 551; description "1540.66 nm/194.58750 THz 6.25/12.5GHz spacing"; } enum "1540.61" { value 552; description "1540.61 nm/194.59375 THz 6.25GHz spacing"; } enum "1540.56" { value 553; description "1540.56 nm/194.60000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1540.51" { value 554; description "1540.51 nm/194.60625 THz 6.25GHz spacing"; } enum "1540.46" { value 555; description "1540.46 nm/194.61250 THz 6.25/12.5GHz spacing"; } enum "1540.41" { value 556; description "1540.41 nm/194.61875 THz 6.25GHz spacing"; } enum "1540.36" { value 557; description "1540.36 nm/194.62500 THz 6.25/12.5GHz spacing"; } enum "1540.31" { value 558; description "1540.31 nm/194.63125 THz 6.25GHz spacing"; } enum "1540.26" { value 559; description "1540.26 nm/194.63750 THz 6.25/12.5GHz spacing"; } enum "1540.21" { value 560; description "1540.21 nm/194.64375 THz 6.25GHz spacing"; } enum "1540.16" { value 561; description "1540.16 nm/194.65000 THz 6.25/12.5/50GHz spacing"; } enum "1540.11" { value 562; description "1540.11 nm/194.65625 THz 6.25GHz spacing"; } enum "1540.06" { value 563; description "1540.06 nm/194.66250 THz 6.25/12.5GHz spacing"; } enum "1540.01" { value 564; description "1540.01 nm/194.66875 THz 6.25GHz spacing"; } enum "1539.96" { value 565; description "1539.96 nm/194.67500 THz 6.25/12.5/50/75GHz spacing"; } enum "1539.91" { value 566; description "1539.91 nm/194.68125 THz 6.25GHz spacing"; } enum "1539.86" { value 567; description "1539.86 nm/194.68750 THz 6.25/12.5GHz spacing"; } enum "1539.82" { value 568; description "1539.82 nm/194.69375 THz 6.25GHz spacing"; } enum "1539.77" { value 569; description "1539.77 nm/194.70000 THz 6.25/12.5/50/100GHz spacing"; } enum "1539.72" { value 570; description "1539.72 nm/194.70625 THz 6.25GHz spacing"; } enum "1539.67" { value 571; description "1539.67 nm/194.71250 THz 6.25/12.5GHz spacing"; } enum "1539.62" { value 572; description "1539.62 nm/194.71875 THz 6.25GHz spacing"; } enum "1539.57" { value 573; description "1539.57 nm/194.72500 THz 6.25/12.5GHz spacing"; } enum "1539.52" { value 574; description "1539.52 nm/194.73125 THz 6.25GHz spacing"; } enum "1539.47" { value 575; description "1539.47 nm/194.73750 THz 6.25/12.5GHz spacing"; } enum "1539.42" { value 576; description "1539.42 nm/194.74375 THz 6.25GHz spacing"; } enum "1539.37" { value 577; description "1539.37 nm/194.75000 THz 6.25/12.5/50/75GHz spacing"; } enum "1539.32" { value 578; description "1539.32 nm/194.75625 THz 6.25GHz spacing"; } enum "1539.27" { value 579; description "1539.27 nm/194.76250 THz 6.25/12.5GHz spacing"; } enum "1539.22" { value 580; description "1539.22 nm/194.76875 THz 6.25GHz spacing"; } enum "1539.17" { value 581; description "1539.17 nm/194.77500 THz 6.25/12.5GHz spacing"; } enum "1539.12" { value 582; description "1539.12 nm/194.78125 THz 6.25GHz spacing"; } enum "1539.07" { value 583; description "1539.07 nm/194.78750 THz 6.25/12.5GHz spacing"; } enum "1539.03" { value 584; description "1539.03 nm/194.79375 THz 6.25GHz spacing"; } enum "1538.98" { value 585; description "1538.98 nm/194.80000 THz 6.25/12.5/50/100GHz spacing"; } enum "1538.93" { value 586; description "1538.93 nm/194.80625 THz 6.25GHz spacing"; } enum "1538.88" { value 587; description "1538.88 nm/194.81250 THz 6.25/12.5GHz spacing"; } enum "1538.83" { value 588; description "1538.83 nm/194.81875 THz 6.25GHz spacing"; } enum "1538.78" { value 589; description "1538.78 nm/194.82500 THz 6.25/12.5/75GHz spacing"; } enum "1538.73" { value 590; description "1538.73 nm/194.83125 THz 6.25GHz spacing"; } enum "1538.68" { value 591; description "1538.68 nm/194.83750 THz 6.25/12.5GHz spacing"; } enum "1538.63" { value 592; description "1538.63 nm/194.84375 THz 6.25GHz spacing"; } enum "1538.58" { value 593; description "1538.58 nm/194.85000 THz 6.25/12.5/50GHz spacing"; } enum "1538.53" { value 594; description "1538.53 nm/194.85625 THz 6.25GHz spacing"; } enum "1538.48" { value 595; description "1538.48 nm/194.86250 THz 6.25/12.5GHz spacing"; } enum "1538.43" { value 596; description "1538.43 nm/194.86875 THz 6.25GHz spacing"; } enum "1538.38" { value 597; description "1538.38 nm/194.87500 THz 6.25/12.5/75GHz spacing"; } enum "1538.33" { value 598; description "1538.33 nm/194.88125 THz 6.25GHz spacing"; } enum "1538.28" { value 599; description "1538.28 nm/194.88750 THz 6.25/12.5GHz spacing"; } enum "1538.24" { value 600; description "1538.24 nm/194.89375 THz 6.25GHz spacing"; } enum "1538.19" { value 601; description "1538.19 nm/194.90000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1538.14" { value 602; description "1538.14 nm/194.90625 THz 6.25GHz spacing"; } enum "1538.09" { value 603; description "1538.09 nm/194.91250 THz 6.25/12.5GHz spacing"; } enum "1538.04" { value 604; description "1538.04 nm/194.91875 THz 6.25GHz spacing"; } enum "1537.99" { value 605; description "1537.99 nm/194.92500 THz 6.25/12.5GHz spacing"; } enum "1537.94" { value 606; description "1537.94 nm/194.93125 THz 6.25GHz spacing"; } enum "1537.89" { value 607; description "1537.89 nm/194.93750 THz 6.25/12.5GHz spacing"; } enum "1537.84" { value 608; description "1537.84 nm/194.94375 THz 6.25GHz spacing"; } enum "1537.79" { value 609; description "1537.79 nm/194.95000 THz 6.25/12.5/50GHz spacing"; } enum "1537.74" { value 610; description "1537.74 nm/194.95625 THz 6.25GHz spacing"; } enum "1537.69" { value 611; description "1537.69 nm/194.96250 THz 6.25/12.5GHz spacing"; } enum "1537.64" { value 612; description "1537.64 nm/194.96875 THz 6.25GHz spacing"; } enum "1537.59" { value 613; description "1537.59 nm/194.97500 THz 6.25/12.5/75GHz spacing"; } enum "1537.55" { value 614; description "1537.55 nm/194.98125 THz 6.25GHz spacing"; } enum "1537.50" { value 615; description "1537.50 nm/194.98750 THz 6.25/12.5GHz spacing"; } enum "1537.45" { value 616; description "1537.45 nm/194.99375 THz 6.25GHz spacing"; } enum "1537.40" { value 617; description "1537.40 nm/195.00000 THz 6.25/12.5/50/100GHz spacing"; } enum "1537.35" { value 618; description "1537.35 nm/195.00625 THz 6.25GHz spacing"; } enum "1537.30" { value 619; description "1537.30 nm/195.01250 THz 6.25/12.5GHz spacing"; } enum "1537.25" { value 620; description "1537.25 nm/195.01875 THz 6.25GHz spacing"; } enum "1537.20" { value 621; description "1537.20 nm/195.02500 THz 6.25/12.5GHz spacing"; } enum "1537.15" { value 622; description "1537.15 nm/195.03125 THz 6.25GHz spacing"; } enum "1537.10" { value 623; description "1537.10 nm/195.03750 THz 6.25/12.5GHz spacing"; } enum "1537.05" { value 624; description "1537.05 nm/195.04375 THz 6.25GHz spacing"; } enum "1537.00" { value 625; description "1537.00 nm/195.05000 THz 6.25/12.5/50/75GHz spacing"; } enum "1536.95" { value 626; description "1536.95 nm/195.05625 THz 6.25GHz spacing"; } enum "1536.90" { value 627; description "1536.90 nm/195.06250 THz 6.25/12.5GHz spacing"; } enum "1536.86" { value 628; description "1536.86 nm/195.06875 THz 6.25GHz spacing"; } enum "1536.81" { value 629; description "1536.81 nm/195.07500 THz 6.25/12.5GHz spacing"; } enum "1536.76" { value 630; description "1536.76 nm/195.08125 THz 6.25GHz spacing"; } enum "1536.71" { value 631; description "1536.71 nm/195.08750 THz 6.25/12.5GHz spacing"; } enum "1536.66" { value 632; description "1536.66 nm/195.09375 THz 6.25GHz spacing"; } enum "1536.61" { value 633; description "1536.61 nm/195.10000 THz 6.25/12.5/50/100GHz spacing"; } enum "1536.56" { value 634; description "1536.56 nm/195.10625 THz 6.25GHz spacing"; } enum "1536.51" { value 635; description "1536.51 nm/195.11250 THz 6.25/12.5GHz spacing"; } enum "1536.46" { value 636; description "1536.46 nm/195.11875 THz 6.25GHz spacing"; } enum "1536.41" { value 637; description "1536.41 nm/195.12500 THz 6.25/12.5/75GHz spacing"; } enum "1536.36" { value 638; description "1536.36 nm/195.13125 THz 6.25GHz spacing"; } enum "1536.31" { value 639; description "1536.31 nm/195.13750 THz 6.25/12.5GHz spacing"; } enum "1536.26" { value 640; description "1536.26 nm/195.14375 THz 6.25GHz spacing"; } enum "1536.22" { value 641; description "1536.22 nm/195.15000 THz 6.25/12.5/50GHz spacing"; } enum "1536.17" { value 642; description "1536.17 nm/195.15625 THz 6.25GHz spacing"; } enum "1536.12" { value 643; description "1536.12 nm/195.16250 THz 6.25/12.5GHz spacing"; } enum "1536.07" { value 644; description "1536.07 nm/195.16875 THz 6.25GHz spacing"; } enum "1536.02" { value 645; description "1536.02 nm/195.17500 THz 6.25/12.5GHz spacing"; } enum "1535.97" { value 646; description "1535.97 nm/195.18125 THz 6.25GHz spacing"; } enum "1535.92" { value 647; description "1535.92 nm/195.18750 THz 6.25/12.5GHz spacing"; } enum "1535.87" { value 648; description "1535.87 nm/195.19375 THz 6.25GHz spacing"; } enum "1535.82" { value 649; description "1535.82 nm/195.20000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1535.77" { value 650; description "1535.77 nm/195.20625 THz 6.25GHz spacing"; } enum "1535.72" { value 651; description "1535.72 nm/195.21250 THz 6.25/12.5GHz spacing"; } enum "1535.67" { value 652; description "1535.67 nm/195.21875 THz 6.25GHz spacing"; } enum "1535.63" { value 653; description "1535.63 nm/195.22500 THz 6.25/12.5GHz spacing"; } enum "1535.58" { value 654; description "1535.58 nm/195.23125 THz 6.25GHz spacing"; } enum "1535.53" { value 655; description "1535.53 nm/195.23750 THz 6.25/12.5GHz spacing"; } enum "1535.48" { value 656; description "1535.48 nm/195.24375 THz 6.25GHz spacing"; } enum "1535.43" { value 657; description "1535.43 nm/195.25000 THz 6.25/12.5/50GHz spacing"; } enum "1535.38" { value 658; description "1535.38 nm/195.25625 THz 6.25GHz spacing"; } enum "1535.33" { value 659; description "1535.33 nm/195.26250 THz 6.25/12.5GHz spacing"; } enum "1535.28" { value 660; description "1535.28 nm/195.26875 THz 6.25GHz spacing"; } enum "1535.23" { value 661; description "1535.23 nm/195.27500 THz 6.25/12.5/75GHz spacing"; } enum "1535.18" { value 662; description "1535.18 nm/195.28125 THz 6.25GHz spacing"; } enum "1535.13" { value 663; description "1535.13 nm/195.28750 THz 6.25/12.5GHz spacing"; } enum "1535.08" { value 664; description "1535.08 nm/195.29375 THz 6.25GHz spacing"; } enum "1535.04" { value 665; description "1535.04 nm/195.30000 THz 6.25/12.5/50/100GHz spacing"; } enum "1534.99" { value 666; description "1534.99 nm/195.30625 THz 6.25GHz spacing"; } enum "1534.94" { value 667; description "1534.94 nm/195.31250 THz 6.25/12.5GHz spacing"; } enum "1534.89" { value 668; description "1534.89 nm/195.31875 THz 6.25GHz spacing"; } enum "1534.84" { value 669; description "1534.84 nm/195.32500 THz 6.25/12.5GHz spacing"; } enum "1534.79" { value 670; description "1534.79 nm/195.33125 THz 6.25GHz spacing"; } enum "1534.74" { value 671; description "1534.74 nm/195.33750 THz 6.25/12.5GHz spacing"; } enum "1534.69" { value 672; description "1534.69 nm/195.34375 THz 6.25GHz spacing"; } enum "1534.64" { value 673; description "1534.64 nm/195.35000 THz 6.25/12.5/50/75GHz spacing"; } enum "1534.59" { value 674; description "1534.59 nm/195.35625 THz 6.25GHz spacing"; } enum "1534.54" { value 675; description "1534.54 nm/195.36250 THz 6.25/12.5GHz spacing"; } enum "1534.50" { value 676; description "1534.50 nm/195.36875 THz 6.25GHz spacing"; } enum "1534.45" { value 677; description "1534.45 nm/195.37500 THz 6.25/12.5GHz spacing"; } enum "1534.40" { value 678; description "1534.40 nm/195.38125 THz 6.25GHz spacing"; } enum "1534.35" { value 679; description "1534.35 nm/195.38750 THz 6.25/12.5GHz spacing"; } enum "1534.30" { value 680; description "1534.30 nm/195.39375 THz 6.25GHz spacing"; } enum "1534.25" { value 681; description "1534.25 nm/195.40000 THz 6.25/12.5/50/100GHz spacing"; } enum "1534.20" { value 682; description "1534.20 nm/195.40625 THz 6.25GHz spacing"; } enum "1534.15" { value 683; description "1534.15 nm/195.41250 THz 6.25/12.5GHz spacing"; } enum "1534.10" { value 684; description "1534.10 nm/195.41875 THz 6.25GHz spacing"; } enum "1534.05" { value 685; description "1534.05 nm/195.42500 THz 6.25/12.5/75GHz spacing"; } enum "1534.00" { value 686; description "1534.00 nm/195.43125 THz 6.25GHz spacing"; } enum "1533.96" { value 687; description "1533.96 nm/195.43750 THz 6.25/12.5GHz spacing"; } enum "1533.91" { value 688; description "1533.91 nm/195.44375 THz 6.25GHz spacing"; } enum "1533.86" { value 689; description "1533.86 nm/195.45000 THz 6.25/12.5/50GHz spacing"; } enum "1533.81" { value 690; description "1533.81 nm/195.45625 THz 6.25GHz spacing"; } enum "1533.76" { value 691; description "1533.76 nm/195.46250 THz 6.25/12.5GHz spacing"; } enum "1533.71" { value 692; description "1533.71 nm/195.46875 THz 6.25GHz spacing"; } enum "1533.66" { value 693; description "1533.66 nm/195.47500 THz 6.25/12.5GHz spacing"; } enum "1533.61" { value 694; description "1533.61 nm/195.48125 THz 6.25GHz spacing"; } enum "1533.56" { value 695; description "1533.56 nm/195.48750 THz 6.25/12.5GHz spacing"; } enum "1533.51" { value 696; description "1533.51 nm/195.49375 THz 6.25GHz spacing"; } enum "1533.47" { value 697; description "1533.47 nm/195.50000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1533.42" { value 698; description "1533.42 nm/195.50625 THz 6.25GHz spacing"; } enum "1533.37" { value 699; description "1533.37 nm/195.51250 THz 6.25/12.5GHz spacing"; } enum "1533.32" { value 700; description "1533.32 nm/195.51875 THz 6.25GHz spacing"; } enum "1533.27" { value 701; description "1533.27 nm/195.52500 THz 6.25/12.5GHz spacing"; } enum "1533.22" { value 702; description "1533.22 nm/195.53125 THz 6.25GHz spacing"; } enum "1533.17" { value 703; description "1533.17 nm/195.53750 THz 6.25/12.5GHz spacing"; } enum "1533.12" { value 704; description "1533.12 nm/195.54375 THz 6.25GHz spacing"; } enum "1533.07" { value 705; description "1533.07 nm/195.55000 THz 6.25/12.5/50GHz spacing"; } enum "1533.02" { value 706; description "1533.02 nm/195.55625 THz 6.25GHz spacing"; } enum "1532.98" { value 707; description "1532.98 nm/195.56250 THz 6.25/12.5GHz spacing"; } enum "1532.93" { value 708; description "1532.93 nm/195.56875 THz 6.25GHz spacing"; } enum "1532.88" { value 709; description "1532.88 nm/195.57500 THz 6.25/12.5/75GHz spacing"; } enum "1532.83" { value 710; description "1532.83 nm/195.58125 THz 6.25GHz spacing"; } enum "1532.78" { value 711; description "1532.78 nm/195.58750 THz 6.25/12.5GHz spacing"; } enum "1532.73" { value 712; description "1532.73 nm/195.59375 THz 6.25GHz spacing"; } enum "1532.68" { value 713; description "1532.68 nm/195.60000 THz 6.25/12.5/50/100GHz spacing"; } enum "1532.63" { value 714; description "1532.63 nm/195.60625 THz 6.25GHz spacing"; } enum "1532.58" { value 715; description "1532.58 nm/195.61250 THz 6.25/12.5GHz spacing"; } enum "1532.53" { value 716; description "1532.53 nm/195.61875 THz 6.25GHz spacing"; } enum "1532.49" { value 717; description "1532.49 nm/195.62500 THz 6.25/12.5GHz spacing"; } enum "1532.44" { value 718; description "1532.44 nm/195.63125 THz 6.25GHz spacing"; } enum "1532.39" { value 719; description "1532.39 nm/195.63750 THz 6.25/12.5GHz spacing"; } enum "1532.34" { value 720; description "1532.34 nm/195.64375 THz 6.25GHz spacing"; } enum "1532.29" { value 721; description "1532.29 nm/195.65000 THz 6.25/12.5/50/75GHz spacing"; } enum "1532.24" { value 722; description "1532.24 nm/195.65625 THz 6.25GHz spacing"; } enum "1532.19" { value 723; description "1532.19 nm/195.66250 THz 6.25/12.5GHz spacing"; } enum "1532.14" { value 724; description "1532.14 nm/195.66875 THz 6.25GHz spacing"; } enum "1532.09" { value 725; description "1532.09 nm/195.67500 THz 6.25/12.5GHz spacing"; } enum "1532.04" { value 726; description "1532.04 nm/195.68125 THz 6.25GHz spacing"; } enum "1532.00" { value 727; description "1532.00 nm/195.68750 THz 6.25/12.5GHz spacing"; } enum "1531.95" { value 728; description "1531.95 nm/195.69375 THz 6.25GHz spacing"; } enum "1531.90" { value 729; description "1531.90 nm/195.70000 THz 6.25/12.5/50/100GHz spacing"; } enum "1531.85" { value 730; description "1531.85 nm/195.70625 THz 6.25GHz spacing"; } enum "1531.80" { value 731; description "1531.80 nm/195.71250 THz 6.25/12.5GHz spacing"; } enum "1531.75" { value 732; description "1531.75 nm/195.71875 THz 6.25GHz spacing"; } enum "1531.70" { value 733; description "1531.70 nm/195.72500 THz 6.25/12.5/75GHz spacing"; } enum "1531.65" { value 734; description "1531.65 nm/195.73125 THz 6.25GHz spacing"; } enum "1531.60" { value 735; description "1531.60 nm/195.73750 THz 6.25/12.5GHz spacing"; } enum "1531.56" { value 736; description "1531.56 nm/195.74375 THz 6.25GHz spacing"; } enum "1531.51" { value 737; description "1531.51 nm/195.75000 THz 6.25/12.5/50GHz spacing"; } enum "1531.46" { value 738; description "1531.46 nm/195.75625 THz 6.25GHz spacing"; } enum "1531.41" { value 739; description "1531.41 nm/195.76250 THz 6.25/12.5GHz spacing"; } enum "1531.36" { value 740; description "1531.36 nm/195.76875 THz 6.25GHz spacing"; } enum "1531.31" { value 741; description "1531.31 nm/195.77500 THz 6.25/12.5GHz spacing"; } enum "1531.26" { value 742; description "1531.26 nm/195.78125 THz 6.25GHz spacing"; } enum "1531.21" { value 743; description "1531.21 nm/195.78750 THz 6.25/12.5GHz spacing"; } enum "1531.16" { value 744; description "1531.16 nm/195.79375 THz 6.25GHz spacing"; } enum "1531.12" { value 745; description "1531.12 nm/195.80000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1531.07" { value 746; description "1531.07 nm/195.80625 THz 6.25GHz spacing"; } enum "1531.02" { value 747; description "1531.02 nm/195.81250 THz 6.25/12.5GHz spacing"; } enum "1530.97" { value 748; description "1530.97 nm/195.81875 THz 6.25GHz spacing"; } enum "1530.92" { value 749; description "1530.92 nm/195.82500 THz 6.25/12.5GHz spacing"; } enum "1530.87" { value 750; description "1530.87 nm/195.83125 THz 6.25GHz spacing"; } enum "1530.82" { value 751; description "1530.82 nm/195.83750 THz 6.25/12.5GHz spacing"; } enum "1530.77" { value 752; description "1530.77 nm/195.84375 THz 6.25GHz spacing"; } enum "1530.72" { value 753; description "1530.72 nm/195.85000 THz 6.25/12.5/50GHz spacing"; } enum "1530.68" { value 754; description "1530.68 nm/195.85625 THz 6.25GHz spacing"; } enum "1530.63" { value 755; description "1530.63 nm/195.86250 THz 6.25/12.5GHz spacing"; } enum "1530.58" { value 756; description "1530.58 nm/195.86875 THz 6.25GHz spacing"; } enum "1530.53" { value 757; description "1530.53 nm/195.87500 THz 6.25/12.5/75GHz spacing"; } enum "1530.48" { value 758; description "1530.48 nm/195.88125 THz 6.25GHz spacing"; } enum "1530.43" { value 759; description "1530.43 nm/195.88750 THz 6.25/12.5GHz spacing"; } enum "1530.38" { value 760; description "1530.38 nm/195.89375 THz 6.25GHz spacing"; } enum "1530.33" { value 761; description "1530.33 nm/195.90000 THz 6.25/12.5/50/100GHz spacing"; } enum "1530.29" { value 762; description "1530.29 nm/195.90625 THz 6.25GHz spacing"; } enum "1530.24" { value 763; description "1530.24 nm/195.91250 THz 6.25/12.5GHz spacing"; } enum "1530.19" { value 764; description "1530.19 nm/195.91875 THz 6.25GHz spacing"; } enum "1530.14" { value 765; description "1530.14 nm/195.92500 THz 6.25/12.5GHz spacing"; } enum "1530.09" { value 766; description "1530.09 nm/195.93125 THz 6.25GHz spacing"; } enum "1530.04" { value 767; description "1530.04 nm/195.93750 THz 6.25/12.5GHz spacing"; } enum "1529.99" { value 768; description "1529.99 nm/195.94375 THz 6.25GHz spacing"; } enum "1529.94" { value 769; description "1529.94 nm/195.95000 THz 6.25/12.5/50/75GHz spacing"; } enum "1529.89" { value 770; description "1529.89 nm/195.95625 THz 6.25GHz spacing"; } enum "1529.85" { value 771; description "1529.85 nm/195.96250 THz 6.25/12.5GHz spacing"; } enum "1529.80" { value 772; description "1529.80 nm/195.96875 THz 6.25GHz spacing"; } enum "1529.75" { value 773; description "1529.75 nm/195.97500 THz 6.25/12.5GHz spacing"; } enum "1529.70" { value 774; description "1529.70 nm/195.98125 THz 6.25GHz spacing"; } enum "1529.65" { value 775; description "1529.65 nm/195.98750 THz 6.25/12.5GHz spacing"; } enum "1529.60" { value 776; description "1529.60 nm/195.99375 THz 6.25GHz spacing"; } enum "1529.55" { value 777; description "1529.55 nm/196.00000 THz 6.25/12.5/50/100GHz spacing"; } enum "1529.50" { value 778; description "1529.50 nm/196.00625 THz 6.25GHz spacing"; } enum "1529.46" { value 779; description "1529.46 nm/196.01250 THz 6.25/12.5GHz spacing"; } enum "1529.41" { value 780; description "1529.41 nm/196.01875 THz 6.25GHz spacing"; } enum "1529.36" { value 781; description "1529.36 nm/196.02500 THz 6.25/12.5/75GHz spacing"; } enum "1529.31" { value 782; description "1529.31 nm/196.03125 THz 6.25GHz spacing"; } enum "1529.26" { value 783; description "1529.26 nm/196.03750 THz 6.25/12.5GHz spacing"; } enum "1529.21" { value 784; description "1529.21 nm/196.04375 THz 6.25GHz spacing"; } enum "1529.16" { value 785; description "1529.16 nm/196.05000 THz 6.25/12.5/50GHz spacing"; } enum "1529.11" { value 786; description "1529.11 nm/196.05625 THz 6.25GHz spacing"; } enum "1529.07" { value 787; description "1529.07 nm/196.06250 THz 6.25/12.5GHz spacing"; } enum "1529.02" { value 788; description "1529.02 nm/196.06875 THz 6.25GHz spacing"; } enum "1528.97" { value 789; description "1528.97 nm/196.07500 THz 6.25/12.5GHz spacing"; } enum "1528.92" { value 790; description "1528.92 nm/196.08125 THz 6.25GHz spacing"; } enum "1528.87" { value 791; description "1528.87 nm/196.08750 THz 6.25/12.5GHz spacing"; } enum "1528.82" { value 792; description "1528.82 nm/196.09375 THz 6.25GHz spacing"; } enum "1528.77" { value 793; description "1528.77 nm/196.10000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1528.38" { value 794; description "1528.38 nm/196.15040 THz 50Ghz spacing"; } } description "Wavelength of the optics (nanometers) for 50Ghz/100Ghz spacing"; } leaf tx-power { type string; units "dBm"; description "Transmit laser output power"; } leaf loopback { type empty; description "Put the optics in loopback mode"; } leaf los-warning-threshold { type string; units "dBm"; description "LOS warning threshold"; } leaf los-alarm-threshold { type string; units "dBm"; description "LOS alarm threshold"; } leaf modulation-format { type enumeration { enum "16qam" { value 0; description "16-QAM Modulation Format"; } enum "8qam" { value 1; description "8-QAM MOdulation Format"; } enum "qpsk" { value 2; description "QPSK Modulation Format"; } } description "Type of Modulation Format"; } choice laser-enable-choice { leaf laser-enable { type empty; description "Enable Laser"; } leaf no-laser-enable { type empty; description "Don't enable Laser"; } } // choice laser-enable-choice choice is-ma-choice { leaf is-ma { type empty; description "Link is enabled with alarms masked"; } leaf no-is-ma { type empty; description "Don't link is enabled with alarms masked"; } } // choice is-ma-choice leaf encoding { type enumeration { enum "differential" { value 0; description "Differential phase line encoding"; } enum "non-differential" { value 1; description "Non-differential phase line encoding"; } } description "Line encoding"; } leaf fec { type enumeration { enum "sdfec" { value 0; description "Sky-Compatible Soft Decision Forward Error Correction"; } enum "sdfec25" { value 1; description "Denali-Compatible Soft Decision Forward Error Correction with 25 percent overhead"; } enum "hgfec" { value 2; description "High Gain Forward Error Correction"; } enum "sdfec15" { value 3; description "Soft Decision Forward Error Correction with 15 percent overhead"; } } description "Forward Error Correction mode"; } leaf high-polarization { type empty; description "High polarization tracking mode"; } container signal-degrade { description "Signal degrade thresholds"; uses apply-advanced; leaf interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 1000"; } } units "milliseconds"; default "10"; description "Time interval"; } leaf ber-threshold-clear { type string { junos:posix-pattern "^[0-9]+(.[0-9]+)?e-[0-9]$"; junos:pattern-message "Ber threshold value in format: xe-n, x is an integer or decimal number, n = 0..9"; } description "Ber threshold for signal degrade clear (format: xe-n, example: 4.5e-3)"; } leaf ber-threshold-signal-degrade { type string { junos:posix-pattern "^[0-9]+(.[0-9]+)?e-[0-9]$"; junos:pattern-message "Ber threshold value in format: xe-n, x is an integer or decimal number, n = 0..9"; } description "Ber threshold for signal-degrade (format: xe-n, example: 4.5e-3)"; } leaf q-threshold-signal-degrade-clear { type string; units "dB"; description "Q threshold for signal-degrade clear (e.g. 14.26)"; } leaf q-threshold-signal-degrade { type string; units "dB"; description "Q threshold for signal-degrade (e.g. 9.26)"; } } // container signal-degrade list alarm { key "name"; ordered-by user; description "Set optic alarms"; leaf name { type enumeration { enum "low-light-alarm" { value 0; description "Enable low light alarm"; } } } uses apply-advanced; choice actiontype { leaf syslog { type empty; } leaf link-down { type empty; } } // choice actiontype } // list alarm container tca { description "Set tca for optic alarms"; uses apply-advanced; container tx-power-high-tca { description "Tx power high TCA"; uses apply-advanced; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable tca"; } leaf no-enable-tca { type empty; description "Don't enable tca"; } } // choice enable-tca-choice leaf threshold { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 15 minute tx power high TCA in dBm"; } leaf threshold-24hrs { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 24 hour tx power high TCA in dBm"; } } // container tx-power-high-tca container tx-power-low-tca { description "Tx power low TCA"; uses apply-advanced; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable tca"; } leaf no-enable-tca { type empty; description "Don't enable tca"; } } // choice enable-tca-choice leaf threshold { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 15 minute tx power low TCA in dBm"; } leaf threshold-24hrs { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 24 hour tx power low TCA in dBm"; } } // container tx-power-low-tca container rx-power-high-tca { description "Rx power high TCA"; uses apply-advanced; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable tca"; } leaf no-enable-tca { type empty; description "Don't enable tca"; } } // choice enable-tca-choice leaf threshold { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 15 minute rx power high TCA in dBm"; } leaf threshold-24hrs { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 24 hour rx power high TCA in dBm"; } } // container rx-power-high-tca container rx-power-low-tca { description "Rx power low TCA"; uses apply-advanced; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable tca"; } leaf no-enable-tca { type empty; description "Don't enable tca"; } } // choice enable-tca-choice leaf threshold { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 15 minute rx power low TCA in dBm"; } leaf threshold-24hrs { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 24 hour rx power low TCA in dBm"; } } // container rx-power-low-tca container temperature-high-tca { description "Temperature high TCA"; uses apply-advanced; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable tca"; } leaf no-enable-tca { type empty; description "Don't enable tca"; } } // choice enable-tca-choice leaf threshold { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 15 minute high temperature TCA in celsius"; } leaf threshold-24hrs { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 24 hour high temperature TCA in celsius"; } } // container temperature-high-tca container temperature-low-tca { description "Temperature low TCA"; uses apply-advanced; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable tca"; } leaf no-enable-tca { type empty; description "Don't enable tca"; } } // choice enable-tca-choice leaf threshold { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 15 minute low temperature TCA in celsius"; } leaf threshold-24hrs { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 24 hour low temperature TCA in celsius"; } } // container temperature-low-tca container carrier-frequency-offset-high-tca { description "Carrier frequency offset high TCA"; uses apply-advanced; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable tca"; } leaf no-enable-tca { type empty; description "Don't enable tca"; } } // choice enable-tca-choice leaf threshold { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 15 minute frequency offset high TCA in MHz"; } leaf threshold-24hrs { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 24 hour frequency offset high TCA in MHz"; } } // container carrier-frequency-offset-high-tca container carrier-frequency-offset-low-tca { description "Carrier frequency offset low TCA"; uses apply-advanced; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable tca"; } leaf no-enable-tca { type empty; description "Don't enable tca"; } } // choice enable-tca-choice leaf threshold { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 15 minute frequency offset low TCA in MHz"; } leaf threshold-24hrs { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 24 hour frequency offset low TCA in MHz"; } } // container carrier-frequency-offset-low-tca container fec-ber { description "Optics Errored Seconds Threshold crossing defect trigger"; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable the Optics errored seconds threshold crossing alert"; } leaf no-enable-tca { type empty; description "Don't enable the Optics errored seconds threshold crossing alert"; } } // choice enable-tca-choice leaf threshold { type string { junos:posix-pattern "^[0-9]+(\.[0-9]+)?e-[0-9]$"; junos:pattern-message "FEC BER threshold value in format: xe-n, x is an integer or decimal number, n = 0..9"; } default "10e-3"; description "TCA threshold for BER value in format: xe-n, x is an integer or decimal number, n = 0..9"; } leaf threshold-24hrs { type string { junos:posix-pattern "^[0-9]+(\.[0-9]+)?e-[0-9]$"; junos:pattern-message "FEC BER threshold value in format: xe-n, x is an integer or decimal number, n = 0..9"; } default "10e-3"; description "TCA threshold for BER value in format: xe-n, x is an integer or decimal number, n = 0..9"; } } // container fec-ber container tec-current-high-tca { description "TEC Current high TCA"; uses apply-advanced; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable tca"; } leaf no-enable-tca { type empty; description "Don't enable tca"; } } // choice enable-tca-choice leaf threshold { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 15 minute TEC Current high TCA in mA"; } leaf threshold-24hrs { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 24 hour TEC Current high TCA in mA"; } } // container tec-current-high-tca container tec-current-low-tca { description "TEC Current low TCA"; uses apply-advanced; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable tca"; } leaf no-enable-tca { type empty; description "Don't enable tca"; } } // choice enable-tca-choice leaf threshold { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 15 minute TEC Current low TCA in mA"; } leaf threshold-24hrs { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 24 hour TEC Current low TCA in mA"; } } // container tec-current-low-tca container residual-isi-high-tca { description "Residual ISI high TCA"; uses apply-advanced; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable tca"; } leaf no-enable-tca { type empty; description "Don't enable tca"; } } // choice enable-tca-choice leaf threshold { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 15 minute Residual ISI high TCA in ps/nm"; } leaf threshold-24hrs { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 24 hour Residual ISI high TCA in ps/nm"; } } // container residual-isi-high-tca container residual-isi-low-tca { description "Residual ISI low TCA"; uses apply-advanced; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable tca"; } leaf no-enable-tca { type empty; description "Don't enable tca"; } } // choice enable-tca-choice leaf threshold { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 15 minute Residual ISI low TCA in ps/nm"; } leaf threshold-24hrs { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 24 hour Residual ISI low TCA in ps/nm"; } } // container residual-isi-low-tca container pam-histogram-high-tca { description "PAM Histogram high TCA"; uses apply-advanced; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable tca"; } leaf no-enable-tca { type empty; description "Don't enable tca"; } } // choice enable-tca-choice leaf threshold { type string { junos:posix-pattern "^[0-9]+$"; junos:pattern-message "must be an unsigned integer"; } description "Threshold for 15 minute PAM Histogram high TCA"; } leaf threshold-24hrs { type string { junos:posix-pattern "^[0-9]+$"; junos:pattern-message "must be an unsigned integer"; } description "Threshold for 24 hour PAM Histogram high TCA"; } } // container pam-histogram-high-tca container snr-low-tca { description "SNR low TCA"; uses apply-advanced; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable tca"; } leaf no-enable-tca { type empty; description "Don't enable tca"; } } // choice enable-tca-choice leaf threshold { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 15 minute SNR low TCA in dBm "; } leaf threshold-24hrs { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 24 hour SNR low TCA in dBm"; } } // container snr-low-tca container fec-corrected-errors-high-tca { description "FEC Corrected Error High Threshold crossing defect trigger"; uses apply-advanced; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable the FEC Corrected Errors threshold crossing alert"; } leaf no-enable-tca { type empty; description "Don't enable the FEC Corrected Errors threshold crossing alert"; } } // choice enable-tca-choice leaf threshold { type string { junos:posix-pattern "^[0-9]+(\.[0-9]+)?e-[0-9]$"; junos:pattern-message "FEC Corrected-Errs threshold value in format: xe-n, x is an integer or decimal number, n = 0..9"; } default "10e-3"; description "FEC Corrected-Errs value in format: xe-n, x is an integer or decimal number, n = 0..9"; } leaf threshold-24hrs { type string { junos:posix-pattern "^[0-9]+(\.[0-9]+)?e-[0-9]$"; junos:pattern-message "FEC Corrected-Errs threshold value in format: xe-n, x is an integer or decimal number, n = 0..9"; } default "10e-3"; description "FEC Corrected-Errs value in format: xe-n, x is an integer or decimal number, n = 0..9"; } } // container fec-corrected-errors-high-tca container fec-ucorrected-words-high-tca { description "FEC UCorrected Words High Threshold crossing defect trigger"; uses apply-advanced; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable the FEC UCorrected Words threshold crossing alert"; } leaf no-enable-tca { type empty; description "Don't enable the FEC UCorrected Words threshold crossing alert"; } } // choice enable-tca-choice leaf threshold { type string { junos:posix-pattern "^[0-9]+(\.[0-9]+)?e-[0-9]$"; junos:pattern-message "FEC UCorrected-Words threshold value in format: xe-n, x is an integer or decimal number, n = 0..9"; } default "10e-3"; description "FEC UCorrected-Words value in format: xe-n, x is an integer or decimal number, n = 0..9"; } leaf threshold-24hrs { type string { junos:posix-pattern "^[0-9]+(\.[0-9]+)?e-[0-9]$"; junos:pattern-message "FEC UCorrected-Words threshold value in format: xe-n, x is an integer or decimal number, n = 0..9"; } default "10e-3"; description "FEC UCorrected-Words value in format: xe-n, x is an integer or decimal number, n = 0..9"; } } // container fec-ucorrected-words-high-tca container laser-frequency-error-high-tca { description "Laser frequency error high TCA"; uses apply-advanced; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable tca"; } leaf no-enable-tca { type empty; description "Don't enable tca"; } } // choice enable-tca-choice leaf threshold { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 15 minute frequency error high TCA in MHz"; } leaf threshold-24hrs { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 24 hour frequency error high TCA in MHz"; } } // container laser-frequency-error-high-tca container laser-frequency-error-low-tca { description "Laser frequency error low TCA"; uses apply-advanced; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable tca"; } leaf no-enable-tca { type empty; description "Don't enable tca"; } } // choice enable-tca-choice leaf threshold { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 15 minute frequency error low TCA in MHz"; } leaf threshold-24hrs { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 24 hour frequency error low TCA in MHz"; } } // container laser-frequency-error-low-tca } // container tca list warning { key "name"; ordered-by user; description "Set optic warnings"; leaf name { type enumeration { enum "low-light-warning" { value 0; description "Enable low light warning"; } } } uses apply-advanced; choice actiontype { leaf syslog { type empty; description "Set action as syslog"; } leaf link-down { type empty; description "Set action as link-down"; } } // choice actiontype } // list warning leaf low-power-mode { type empty; description "Force optics to low power mode"; } leaf host-side-fec { type enumeration { enum "off" { value 0; description "Host side FEC OFF for optics"; } enum "on" { value 1; description "Host side FEC ON for optics"; } } description "Host side optics FEC ON/OFF"; } leaf media-side-fec { type enumeration { enum "off" { value 0; description "Media side FEC OFF for optics"; } enum "on" { value 1; description "Media side FEC ON for optics"; } } description "Media side FEC ON/OFF"; } choice lane-info { list lane { key "name"; description "Media lane number"; leaf name { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 7"; } } description "Lane number"; } uses apply-advanced; leaf tx-laser { junos:must "(!("interfaces ${interface} disable"))"; junos:must-message "tx-laser cannot be applied when interface is disabled"; type enumeration { enum "off" { value 0; description "Transmit laser OFF for optics"; } enum "on" { value 1; description "Transmit laser ON for optics"; } } description "Transmit Laser ON/OFF"; } leaf rx-output { type enumeration { enum "off" { value 0; description "Receive output OFF for optics"; } enum "on" { value 1; description "Receive output ON for optics"; } } description "Receive output ON/OFF"; } leaf tx-cdr { type enumeration { enum "off" { value 0; description "Transmit Clock and Data Recovery OFF for optics"; } enum "on" { value 1; description "Transmit Clock and Data Recovery ON for optics"; } } description "Transmit Clock and Data Recovery ON/OFF"; } leaf rx-cdr { type enumeration { enum "off" { value 0; description "Receive Clock and Data Recovery OFF for optics"; } enum "on" { value 1; description "Receive Clock and Data Recovery ON for optics"; } } description "Receive Clock and Data Recovery ON/OFF"; } leaf tx-input-equalization-adaptive { type enumeration { enum "off" { value 0; description "Transmit adaptive equalization OFF for optics"; } enum "on" { value 1; description "Transmit adaptive equalization ON for optics"; } } description "Transmit adaptive equalization ON/OFF"; } leaf tx-input-equalization-manual { junos:must "(!(".. tx-input-equalization-adaptive on"))"; junos:must-message "Manual equalization not possible when adaptive is enabled"; type union { type string { pattern "<.*>|$.*"; } type int32 { range "0 .. 15"; } } units "dB"; description "Transmit manual equalization for optics"; } leaf rx-output-emphasis { type union { type string { pattern "<.*>|$.*"; } type int32 { range "0 .. 15"; } } units "dB"; description "Receive output emphasis for optics"; } leaf rx-output-amplitude { type enumeration { enum "400mV" { value 0; description "No equalization for 100mV - 400mV amplitude"; } enum "600mV" { value 1; description "No equalization for 300mV - 600mV amplitude"; } enum "800mV" { value 2; description "No equalization for 400mV - 800mV amplitude"; } enum "1200mV" { value 3; description "No equalization for 600mV - 1200mV amplitude"; } } description "Receive output amplitude setting"; } leaf tx-squelch { type enumeration { enum "off" { value 0; description "Transmit squelch OFF for optics"; } enum "on" { value 1; description "Transmit squelch ON for optics"; } } description "Transmit squelch ON/OFF"; } leaf rx-squelch { type enumeration { enum "off" { value 0; description "Receive squelch OFF for optics"; } enum "on" { value 1; description "Receive squelch ON for optics"; } } description "Receive squelch ON/OFF"; } leaf tx-rate-select { type union { type string { pattern "<.*>|$.*"; } type int32 { range "0 .. 3"; } } description "Transmit rate select for optics"; } leaf rx-rate-select { type union { type string { pattern "<.*>|$.*"; } type int32 { range "0 .. 3"; } } description "Receive rate select for optics"; } } // list lane container lane-all { presence "enable lane-all"; description "Apply settings to all lane"; uses apply-advanced; leaf tx-laser { junos:must "(!("interfaces ${interface} disable"))"; junos:must-message "tx-laser cannot be applied when interface is disabled"; type enumeration { enum "off" { value 0; description "Transmit laser OFF for optics"; } enum "on" { value 1; description "Transmit laser ON for optics"; } } description "Transmit Laser ON/OFF"; } leaf rx-output { type enumeration { enum "off" { value 0; description "Receive output OFF for optics"; } enum "on" { value 1; description "Receive output ON for optics"; } } description "Receive output ON/OFF"; } leaf tx-cdr { type enumeration { enum "off" { value 0; description "Transmit Clock and Data Recovery OFF for optics"; } enum "on" { value 1; description "Transmit Clock and Data Recovery ON for optics"; } } description "Transmit Clock and Data Recovery ON/OFF"; } leaf rx-cdr { type enumeration { enum "off" { value 0; description "Receive Clock and Data Recovery OFF for optics"; } enum "on" { value 1; description "Receive Clock and Data Recovery ON for optics"; } } description "Receive Clock and Data Recovery ON/OFF"; } leaf tx-input-equalization-adaptive { type enumeration { enum "off" { value 0; description "Transmit adaptive equalization OFF for optics"; } enum "on" { value 1; description "Transmit adaptive equalization ON for optics"; } } description "Transmit adaptive equalization ON/OFF"; } leaf tx-input-equalization-manual { junos:must "(!(".. tx-input-equalization-adaptive on"))"; junos:must-message "Manual equalization not possible when adaptive is enabled"; type union { type string { pattern "<.*>|$.*"; } type int32 { range "0 .. 15"; } } units "dB"; description "Transmit manual equalization for optics"; } leaf rx-output-emphasis { type union { type string { pattern "<.*>|$.*"; } type int32 { range "0 .. 15"; } } units "dB"; description "Receive output emphasis for optics"; } leaf rx-output-amplitude { type enumeration { enum "400mV" { value 0; description "No equalization for 100mV - 400mV amplitude"; } enum "600mV" { value 1; description "No equalization for 300mV - 600mV amplitude"; } enum "800mV" { value 2; description "No equalization for 400mV - 800mV amplitude"; } enum "1200mV" { value 3; description "No equalization for 600mV - 1200mV amplitude"; } } description "Receive output amplitude setting"; } leaf tx-squelch { type enumeration { enum "off" { value 0; description "Transmit squelch OFF for optics"; } enum "on" { value 1; description "Transmit squelch ON for optics"; } } description "Transmit squelch ON/OFF"; } leaf rx-squelch { type enumeration { enum "off" { value 0; description "Receive squelch OFF for optics"; } enum "on" { value 1; description "Receive squelch ON for optics"; } } description "Receive squelch ON/OFF"; } leaf tx-rate-select { type union { type string { pattern "<.*>|$.*"; } type int32 { range "0 .. 3"; } } description "Transmit rate select for optics"; } leaf rx-rate-select { type union { type string { pattern "<.*>|$.*"; } type int32 { range "0 .. 3"; } } description "Receive rate select for optics"; } } // container lane-all } // choice lane-info } // container optics-options container otn-options { description "Optical Transmission Network interface-specific options"; uses otn_options_type; } // container otn-options container tdm-options { description "Time division multiplexing (TDM) interface-specific options"; uses tdm_options_type; } // container tdm-options container och-options { description "Optical channel configuration options"; uses och-attributes; } // container och-options container otu-options { description "Optical transmission unit configuration options"; uses otu-attributes; } // container otu-options container odu-options { description "Optical data unit configuration options"; uses odu-attributes; } // container odu-options container ett-options { description "Transport ethernet client configuration options"; uses ett-attributes; } // container ett-options container fastether-options { description "Fast Ethernet interface-specific options"; uses apply-advanced; choice loopback-choice { leaf loopback { type empty; description "Enable loopback"; } leaf no-loopback { type empty; description "Don't enable loopback"; } } // choice loopback-choice choice flow-control-choice { leaf flow-control { type empty; description "Enable flow control"; } leaf no-flow-control { type empty; description "Don't enable flow control"; } } // choice flow-control-choice choice source-filtering-choice { leaf source-filtering { type empty; description "Enable source address filtering"; } leaf no-source-filtering { type empty; description "Don't enable source address filtering"; } } // choice source-filtering-choice leaf ingress-rate-limit { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 100"; } } units "megabits per second"; description "Ingress rate at port"; } list source-address-filter { key "name"; ordered-by user; description "Source address filters"; leaf name { type jt:mac-addr; description "Remote MAC address"; } } // list source-address-filter container ieee-802.3ad { junos:must "(!("system autoinstallation"))"; junos:must-message "incompatible with 'system autoinstallation'"; description "IEEE 802.3ad"; uses apply-advanced; container lacp { description "Link Aggregation Control Protocol configuration"; uses apply-advanced; leaf port-priority { type union { type uint16; type string { pattern "<.*>|$.*"; } } description "Priority of the port (0 ... 65535)"; } } // container lacp leaf bundle { junos:must "(!(".. .. .. vlan-offload"))"; junos:must-message "ae child device vlan-offload is not allowed"; junos:must "(!(".. .. .. flow-control"))"; junos:must-message "Setting flow-control on ae child device is not allowed"; junos:must "(!(".. .. .. mtu"))"; junos:must-message "Setting mtu on ae child device is not allowed"; junos:must "(!(".. .. .. vlan-vci-tagging"))"; junos:must-message "ae child device vlan-vci-tagging is not allowed"; junos:must "(!(".. .. .. stacked-vlan-tagging"))"; junos:must-message "ae child device stacked-vlan-tagging is not allowed"; junos:must "(!(".. .. .. flexible-vlan-tagging"))"; junos:must-message "ae child device flexible-vlan-tagging is not allowed"; junos:must "(!(".. .. .. vlan-tagging"))"; junos:must-message "ae child device vlan-tagging is not allowed"; type union { type jt:interface-device; type string { pattern "<.*>|$.*"; } } description "Join an aggregated Ethernet interface"; } choice type { leaf primary { type empty; description "Primary interface for link-protection mode"; } leaf backup { type empty; description "Backup interface for link-protection mode"; } } // choice type } // container ieee-802.3ad container mpls { description "MPLS options"; uses mpls_ifd_options; } // container mpls leaf ignore-l3-incompletes { type empty; description "Ignore L3 incomplete errors"; } } // container fastether-options container aggregated-ether-options { description "Aggregated Ethernet interface-specific options"; uses apply-advanced; choice loopback-choice { leaf loopback { type empty; description "Enable loopback"; } leaf no-loopback { type empty; description "Don't enable loopback"; } } // choice loopback-choice choice flow-control-choice { leaf flow-control { type empty; description "Enable flow control"; } leaf no-flow-control { type empty; description "Don't enable flow control"; } } // choice flow-control-choice choice source-filtering-choice { leaf source-filtering { type empty; description "Enable source address filtering"; } leaf no-source-filtering { type empty; description "Don't enable source address filtering"; } } // choice source-filtering-choice leaf autostate-exclude { type empty; description "Interface will not contribute to IRB state"; } container link-protection { presence "enable link-protection"; description "Enable link protection mode"; uses apply-advanced; leaf revertive { junos:must "(!("interfaces ${interface} aggregated-ether-options link-protection non-revertive"))"; junos:must-message "link-protection revertive and non-revertive are mutually exclusive"; junos:must "(!("chassis aggregated-devices ethernet lacp"))"; junos:must-message "link-protection revertive and LACP are mutually exclusive"; junos:must "(!("interfaces ${interface} aggregated-ether-options lacp"))"; junos:must-message "link-protection revertive and LACP are mutually exclusive"; type empty; description "Revert back from active backup link to primary, if primary is UP"; } leaf non-revertive { junos:must "(!("interfaces ${interface} aggregated-ether-options link-protection revertive"))"; junos:must-message "link-protection revertive and non-revertive are mutually exclusive"; junos:must "(!("chassis aggregated-devices ethernet lacp"))"; junos:must-message "link-protection revertive and LACP are mutually exclusive"; junos:must "(!("interfaces ${interface} aggregated-ether-options lacp"))"; junos:must-message "link-protection revertive and LACP are mutually exclusive"; type empty; description "Do not revert back (default mode) from active backup link to primary, if primary is UP"; } leaf backup-state { type enumeration { enum "accept-data" { value 0; description "Accept data on receive channel of backup link"; } enum "discard-data" { value 1; description "Discard data on receive channel of backup link"; } enum "down" { junos:must "(!("chassis aggregated-devices ethernet lacp"))"; junos:must-message "backup-state down and LACP are mutually exclusive"; junos:must "(!("interfaces ${interface} aggregated-ether-options lacp"))"; junos:must-message "backup-state down and LACP are mutually exclusive"; value 2; description "Backup link is marked down"; } } default "accept-data"; description "Link protection backup link state"; } container rtg-config { presence "enable rtg-config"; description "RTG enable on AE"; uses apply-advanced; leaf preempt-cutover-timer { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } default "1"; description "RTG preempt-cutover-timer in seconds"; } } // container rtg-config } // container link-protection choice fcoe-lag-choice { leaf fcoe-lag { type empty; description "Enable FIP/FCoE LAG"; } leaf no-fcoe-lag { type empty; description "Don't enable FIP/FCoE LAG"; } } // choice fcoe-lag-choice list source-address-filter { key "name"; ordered-by user; description "Source address filters"; leaf name { type jt:mac-addr; description "Remote MAC address"; } } // list source-address-filter container configured-flow-control { junos:must "(!((".. flow-control" || ".. no-flow-control")))"; junos:must-message "flow-control and configured-flow-control are not allowed together"; presence "enable configured-flow-control"; description "Enable flow control"; uses apply-advanced; leaf rx-buffers { type enumeration { enum "on" { value 0; description "Enable Rx buffers"; } enum "off" { value 1; description "Disable Rx buffers"; } } description "Enable/Disable Rx buffers"; } leaf tx-buffers { type enumeration { enum "on" { value 0; description "Enable Tx buffers"; } enum "off" { value 1; description "Disable Tx buffers"; } } description "Enable/Disable Tx buffers"; } } // container configured-flow-control container load-balance { uses aggregate-load-balance; } // container load-balance container bfd-liveness-detection { junos:must "(!(".. lacp fast-failover"))"; junos:must-message "BFD not supported with lacp with fast-failover mode"; junos:must "(!(".. lacp link-protection"))"; junos:must-message "BFD not supported with lacp link protection"; junos:must "(!(".. link-protection"))"; junos:must-message "BFD not supported with link protection"; description "Bidirectional Forwarding Detection (BFD) options"; 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 authentication { description "Authentication options"; uses apply-advanced; leaf key-chain { junos:must "(".. algorithm")"; junos:must-message "May not be configured without algorithm"; junos:must "("security authentication-key-chains key-chain $$")"; junos:must-message "Referenced key-chain must be defined"; type string; description "Key chain name"; } leaf algorithm { junos:must "(".. key-chain")"; junos:must-message "May not be configured without key-chain"; type enumeration { enum "simple-password" { value 0; description "Simple password"; } enum "keyed-md5" { value 1; description "Keyed message Digest 5"; } enum "meticulous-keyed-md5" { value 2; description "Meticulous keyed message Digest 5"; } enum "keyed-sha-1" { value 3; description "Keyed secure hash algorithm (SHA1) "; } enum "meticulous-keyed-sha-1" { value 4; description "Meticulous keyed secure hash algorithm (SHA1) "; } } description "Algorithm name"; } leaf loose-check { type empty; description "Verify authentication only if authentication is negotiated"; } } // container authentication leaf neighbor { type jt:ipaddr; description "BFD neighbor address"; } leaf local-address { type jt:ipaddr; description "BFD local address"; } leaf holddown-interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255000"; } } units "milliseconds"; description "Time to hold the session-UP notification to the client"; } } // container bfd-liveness-detection leaf minimum-links { junos:must "(!("interfaces ${interface} aggregated-ether-options link-speed mixed"))"; junos:must-message "Minimum-links option is not compatible with link-speed mixed"; type union { type string { pattern "<.*>|$.*"; } type uint16; } description "Minimum number of aggregated links"; } container minimum-bandwidth { junos:must "(!("interfaces ${interface} aggregated-ether-options optimize-aggregate-frr"))"; junos:must-message "Minimum-bandwidth and optimize-aggregate-frr are mutually exclusive"; junos:must "(!("interfaces ${interface} aggregated-ether-options minimum-links"))"; junos:must-message "Minimum-bandwidth and minimum-links are mutually exclusive"; presence "enable minimum-bandwidth"; description "Minimum bandwidth configured for aggregated bundle"; uses apply-advanced; leaf bw-value { type union { type uint64; type string { pattern "<.*>|$.*"; } } default "1"; description "Bandwidth value"; } leaf bw-unit { type enumeration { enum "bps" { value 0; description "Links are in bits per sec"; } enum "kbps" { value 1; description "Links are in kilo bits per sec"; } enum "mbps" { value 2; description "Links are in mega bits per sec"; } enum "gbps" { value 3; description "Links are in giga bits per sec "; } } description "Bandwidth unit"; } } // container minimum-bandwidth choice redundancy_choice { case case_1 { } // case case_1 case case_2 { } // case case_2 } // choice redundancy_choice container rebalance-periodic { uses apply-advanced; } // container rebalance-periodic leaf link-speed { type enumeration { enum "10m" { value 0; description "Links are 10M"; } enum "100m" { value 1; description "Links are 100M"; } enum "1g" { value 2; description "Links are 1G"; } enum "2.5g" { value 3; description "Links are 2.5G"; } enum "5g" { value 4; description "Links are 5G"; } enum "8g" { value 5; description "Links are 8G"; } enum "10g" { value 6; description "Links are 10G"; } enum "25g" { value 7; description "Links are 25G"; } enum "40g" { value 8; description "Links are 40G"; } enum "50g" { value 9; description "Links are 50G"; } enum "80g" { value 10; description "Links are 80G"; } enum "100g" { value 11; description "Links are 100G"; } enum "400g" { value 12; description "Links are 400G"; } enum "oc192" { value 13; description "Links are OC-192"; } enum "mixed" { junos:must "(!("interfaces ${interface} per-unit-scheduler"))"; junos:must-message "per-unit-scheduler is incompatible with link-speed mixed"; junos:must "(!(".. resilient-hash"))"; junos:must-message "Mixed-rate AE is not supported along with Resilient Hashing mode"; junos:must "(!(".. load-balance adaptive"))"; junos:must-message "Mixed-rate AE is not supported along with Adaptive Load balance mode"; value 14; description "Links are various speeds"; } } description "Link speed of individual interface that joins the AE"; } container local-bias { presence "enable local-bias"; description "Turn on local bias functionality"; uses apply-advanced; leaf disable { type empty; description "Disable local-bias"; } } // container local-bias leaf local-minimum-links-threshold { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 100"; } } description "Specify threshold for minimum links per VC/VCF member"; } leaf resilient-hash { junos:must "(!(".. dlb"))"; junos:must-message "Resilient-hash AE is not supported along with Dynamic Load Balancing AE"; junos:must "(!("link-speed mixed"))"; junos:must-message "Resilient-hash AE is not supported along with Mixed-rate mode"; junos:must "(!("load-balance adaptive"))"; junos:must-message "Resilient-hash AE is not supported along with Adaptive Load balance mode"; type empty; description "Turn on resilient-hash"; } container dlb { junos:must "(!(".. resilient-hash"))"; junos:must-message "Dynamic Load Balancing AE is not supported along with resilient hash"; description "Enable DLB on LAG"; uses apply-advanced; choice mode { leaf per-packet { type empty; description "Per-packet link assignment"; } leaf assigned-flow { type empty; description "Fixed link assignment"; } container flowlet { presence "enable flowlet"; description "Inactivity-based link assignment"; uses apply-advanced; leaf inactivity-interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "16 .. 100000"; } } default "256"; description " Minimum inactivity interval in micro-seconds for link re-assignment"; } } // container flowlet } // choice mode } // container dlb container lacp { description "Link Aggregation Control Protocol configuration"; uses apply-advanced; choice mode { leaf active { type empty; description "Initiate transmission of LACP packets"; } leaf passive { type empty; description "Respond to LACP packets"; } } // choice mode leaf periodic { type enumeration { enum "fast" { value 0; description "Receive packets every second"; } enum "slow" { value 1; description "Receive packets every 30 seconds"; } } description "Timer interval for periodic transmission of LACP packets"; } leaf multiplier { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "3 .. 30"; } } description "LACP timeout detection multiplier"; } container link-protection { junos:must "(!(".. .. link-protection"))"; junos:must-message "LACP and non LACP based link-protection not allowed together"; presence "enable link-protection"; uses apply-advanced; leaf disable { type empty; description "To turn off LACP link-protection"; } choice mode { leaf revertive { type empty; description "Switch links when better priority link comes up"; } leaf non-revertive { type empty; description "Do not switch links when better priority link comes up"; } } // choice mode container rtg-config { presence "enable rtg-config"; description "RTG Feature enable on AE"; uses apply-advanced; leaf preempt-cutover-timer { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } default "1"; description "RTG preempt-cutover-timer in seconds"; } } // container rtg-config } // container link-protection leaf sync-reset { type enumeration { enum "disable" { value 0; description "To disable minimum-link failure handling at LACP level"; } enum "enable" { value 1; description "To enable minimum-link failure handling at LACP level"; } } description "On minimum-link failure notify out of sync to peer"; } leaf system-priority { type string; description "Priority of the system (0 ... 65535)"; } leaf system-id { type jt:mac-addr; description "Node's System ID, encoded as a MAC address"; } leaf admin-key { type union { type uint16; type string { pattern "<.*>|$.*"; } } description "Node's administrative key"; } container hold-time { description "Hold time for link up and link down for AE link members"; leaf up { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 6000"; } } units "seconds"; description "Link up hold time for the AE link members"; } } // container hold-time leaf aggregate-wait-time { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "2 .. 1800"; } } units "seconds"; description "Aggregate wait time for the AE"; } leaf force-up { type empty; description "Forceup AE interface with LACP"; } leaf no-peer-loopback-validation { junos:must "(".. force-up")"; junos:must-message "LACP force-up must be configured for no-peer-loopback-validation"; junos:must "(".. .. mc-ae")"; junos:must-message "MC-AE must be configured for no-peer-loopback-validation"; type empty; description "Skip MCLAG peer loop back validation for LACP PDUs on Forceup AE interface"; } } // container lacp list link-protection-sub-group { key "name"; ordered-by user; description "Link Protection subgroup configuration"; leaf name { type string { length "2 .. 64"; } description "Name of the subgroup"; } uses apply-advanced; choice type { leaf primary { type empty; description "Primary subgroup for N:N link-protection mode"; } leaf backup { type empty; description "Backup subgroup for N:N link-protection mode"; } } // choice type } // list link-protection-sub-group container ethernet-switch-profile { description "Ethernet virtual LAN/media access control-level options"; uses apply-advanced; leaf-list tag-protocol-id { type string; ordered-by user; description "IEEE 802.1q Tag Protocol Identifier values for VLAN-tagged frames"; } container storm-control { description "Storm control profile name to bind"; uses apply-advanced; leaf profile-name { junos:must "("forwarding-options storm-control-profiles $$")"; junos:must-message "Storm profile name must be defined in the [edit forwarding-options storm-control-profiles] hierarchy"; type string; description "Profile name"; } } // container storm-control container recovery-timeout { description "Recovery timeout for this interface"; leaf time-in-seconds { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "10 .. 3600"; } } units "seconds"; } } // container recovery-timeout leaf mac-learn-enable { type empty; description "Learn MAC addresses dynamically"; } } // container ethernet-switch-profile container mc-ae { junos:must "(!((".. link-protection" || ".. lacp link-protection")))"; junos:must-message "MC-AE and link-protection on AE can not co-exist"; junos:must "(".. lacp admin-key")"; junos:must-message "LACP admin-key must be configured for MC-AE"; junos:must "(".. lacp system-id")"; junos:must-message "LACP system-id must be configured for MC-AE"; junos:must "(!(".. .. encapsulation vlan-ccc"))"; junos:must-message "Encapsulation vlan-ccc is not supported with MC-AE"; description "Multi-chassis aggregation (MC-AE) network device configuration"; uses apply-advanced; leaf mc-ae-id { junos:must "(unique "interfaces <*> aggregated-ether-options mc-ae mc-ae-id $$")"; junos:must-message "MC-AE id alredy being used"; type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 65535"; } } description "MC-AE group id"; } leaf redundancy-group { junos:must "((any "protocols iccp peer <*> redundancy-group-id-list $$" || any "logical-systems <*> protocols iccp peer <*> redundancy-group-id-list $$"))"; junos:must-message "The redundancy group must match with one defined at <protocols iccp peer redundancy-group-id-list>"; type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 4294967294"; } } default "1"; description "Redundancy group id"; } leaf chassis-id { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "0 .. 1"; } } description "Chassis id of MC-AE network device"; } leaf mode { type enumeration { enum "active-active" { junos:must "(!(any "interfaces ${interface} unit <*> family inet6"))"; junos:must-message "family inet6 is not supported with MC-AE active-active"; junos:must "(!(any "interfaces ${interface} unit <*> family inet"))"; junos:must-message "family inet is not supported with MC-AE active-active"; value 0; description "MC-AE in active-active mode"; } } description "Mode of the MC-AE"; } leaf status-control { type enumeration { enum "active" { value 0; description "Chassis is Active"; } enum "standby" { value 1; description "Chassis is Standby"; } } description "Status of the MC-AE chassis"; } leaf switchover-mode { type enumeration { enum "revertive" { junos:must "(".. .. mc-ae mode active-standby")"; junos:must-message "Only Supported in Active-Standby mode."; junos:must "(!(".. .. mc-ae status-control standby"))"; junos:must-message "Supported only when status control is Active"; value 0; description "Switch mcae node when preferred link comes up"; } enum "non-revertive" { junos:must "(".. .. mc-ae mode active-standby")"; junos:must-message "Only Supported in Active-Standby mode."; junos:must "(".. .. mc-ae status-control active")"; junos:must-message "Supported only when status control is Active"; value 1; description "Do not switch mcae node when preferred link comes up"; } } description "Switchover mode"; } leaf revert-time { junos:must "(".. .. mc-ae mode active-standby")"; junos:must-message "Only Supported in Active-Standby mode."; junos:must "(".. .. mc-ae status-control active")"; junos:must-message "Supported only when status control is Active"; type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 10"; } } units "minute"; default "3"; description "Wait interval before performing switchover"; } leaf init-delay-time { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 6000"; } } units "seconds"; description "Init delay timer for mcae sm for min traffic loss"; } leaf recovery-delay-time { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 6000"; } } units "seconds"; description "Delay timer for bringing up ICL, ICCP"; } leaf enhanced-convergence { junos:must "(".. .. mc-ae mode active-active")"; junos:must-message "Only Supported in MCAE active-active mode."; type empty; description "Optimized convergence time for mcae"; } container events { presence "enable events"; description "MCAE related events"; uses apply-advanced; container iccp-peer-down { presence "enable iccp-peer-down"; description "Define behavior in the event of ICCP peer down"; uses apply-advanced; leaf force-icl-down { type empty; description "Bring down ICL logical interface"; } leaf prefer-status-control-active { type empty; description "Keep this node up (recommended only on status-control active)"; } } // container iccp-peer-down } // container events } // container mc-ae } // container aggregated-ether-options container es-options { description "ES PIC interface-specific options"; uses apply-advanced; leaf backup-interface { type union { type jt:interface-device; type string { pattern "<.*>|$.*"; } } description "Name of backup interface"; } } // container es-options container vdsl-options { description "VDSL interface-specific options"; uses apply-advanced; leaf vdsl-profile { type enumeration { enum "auto" { value 0; description "Auto"; } enum "8a" { value 1; description "Profile 8a"; } enum "8b" { value 2; description "Profile 8b"; } enum "8c" { value 3; description "Profile 8c"; } enum "8d" { value 4; description "Profile 8d"; } enum "12a" { value 5; description "Profile 12a"; } enum "12b" { value 6; description "Profile 12b"; } enum "17a" { value 7; description "Profile 17a"; } } description "VDSL profile"; } leaf sra { type enumeration { enum "enable" { value 0; description "Enable SRA"; } enum "disable" { value 1; description "Disable SRA"; } } default "disable"; description "DSL SRA"; } leaf v43 { type enumeration { enum "enable" { value 0; description "Enable V43"; } enum "disable" { value 1; description "Disable V43"; } } default "enable"; description "DSL V43 tones"; } leaf sos { type empty; description "Enable SOS"; } } // container vdsl-options container dsl-sfp-options { description "DSL SFP options"; uses apply-advanced; container adsl-options { description "ADSL options"; uses apply-advanced; leaf vpi { junos:must "(".. vci")"; junos:must-message "vci must be specified"; type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Virtual path identifier"; } leaf vci { junos:must "(".. vpi")"; junos:must-message "vpi must be specified"; type union { type string { pattern "<.*>|$.*"; } type uint32 { range "32 .. 65535"; } } description "Virtual circuit identifier"; } leaf encap { junos:must "((".. vci" && ".. vpi"))"; junos:must-message "vci and vpi must be specified"; type enumeration { enum "bypass" { value 0; description "Bypass"; } enum "llcsnap-bridged-802dot1q" { value 1; description "LLCSNAP bridged 802.1q"; } enum "llcsnap-routed-ip" { value 2; description "LLCSNAP routed ip"; } enum "vc-mux-bridged" { value 3; description "VC MUX bridged"; } enum "vc-mux-routed-ip" { value 4; description "VC MUX routed ip"; } enum "generic" { value 5; description "Generic"; } } description "Encapsulation"; } leaf annex { junos:must "((".. vci" && ".. vpi"))"; junos:must-message "vci and vpi must be specified"; type enumeration { enum "auto" { value 0; description "Annex type auto"; } enum "annexj-off" { value 1; description "Annex type annexj turn off"; } } description "Annex type"; } } // container adsl-options container vdsl-options { description "VDSL options"; uses apply-advanced; leaf profile { type enumeration { enum "auto" { value 0; description "Automatic"; } enum "8a" { value 1; description "Profile 8a"; } enum "8b" { value 2; description "Profile 8b"; } enum "8c" { value 3; description "Profile 8c"; } enum "8d" { value 4; description "Profile 8d"; } enum "12a" { value 5; description "Profile 12a"; } enum "12b" { value 6; description "Profile 12b"; } enum "17a" { value 7; description "Profile 17a"; } enum "30a" { value 8; description "Profile 30a"; } } description "VDSL profile"; } leaf carrier { type enumeration { enum "auto" { value 0; description "Automatic"; } enum "a43" { value 1; description "Carrier A43"; } enum "b43" { value 2; description "Carrier B43"; } } description "Carrier setting"; } } // container vdsl-options container gfast-options { description "G.fast options"; uses apply-advanced; leaf carrier { type enumeration { enum "a43" { value 0; description "Carrier A43"; } enum "a43c" { value 1; description "Carrier A43C"; } enum "b43" { value 2; description "Carrier B43"; } enum "b43c" { value 3; description "Carrier B43C"; } } description "Carrier setting"; } } // container gfast-options } // container dsl-sfp-options container shdsl-options { junos:must "(!("interfaces ${interface} vdsl-options"))"; junos:must-message "VDSL options cannot co-exist with SHDSL options on the same interface"; junos:must "(!("interfaces ${interface} dsl-options"))"; junos:must-message "DSL options cannot co-exist with SHDSL options on the same interface"; description "SHDSL interface-specific options"; uses apply-advanced; leaf annex { type enumeration { enum "annex-a" { value 0; description "Annex-a PIC"; } enum "annex-b" { value 1; description "Annex-b PIC"; } enum "annex-f" { value 2; description "Annex-f PIC"; } enum "annex-g" { value 3; description "Annex-g PIC"; } enum "annex-auto" { value 4; description "Annex-auto PIC"; } } default "annex-b"; description "Type of SHDSL annex"; } leaf line-rate { type string; description "SHDSL line rate"; } leaf loopback { type enumeration { enum "local" { value 0; description "Local loopback"; } enum "remote" { value 1; description "Remote loopback"; } } description "Loopback mode"; } container snr-margin { presence "enable snr-margin"; description "Signal to noise ratio margin"; uses apply-advanced; leaf current { type string; units "dB"; description "Current signal to noise ratio margin"; } leaf snext { type string; units "dB"; description "SNEXT signal to noise ratio margin"; } } // container snr-margin } // container shdsl-options container container-options { description "Container interface specific options"; uses apply-advanced; container container-type { presence "enable container-type"; description "Protocol type of the container interface"; uses apply-advanced; choice container-type-choice { container aps { junos:must "((".. .. member-interface-type sonet" || (".. .. member-interface-type atm" || (".. .. member-interface-type channelized-sonet" || ".. .. member-interface-type channelized-sdh"))))"; junos:must-message "APS can be enabled on Sonet, Channelized-Sonet, Channelized-SDH or ATM interfaces only"; presence "enable aps"; description "APS options on the container"; uses aps_type; } // container aps } // choice container-type-choice } // container container-type container member-interface-type { description "Link type of members of container"; uses apply-advanced; choice member_interface_type_choice { container sonet { uses apply-advanced; leaf member-interface-speed { type enumeration { enum "oc3" { value 0; description "Links are OC-3"; } enum "oc12" { value 1; description "Links are OC-12"; } enum "oc48" { value 2; description "Links are OC-48"; } enum "oc192" { value 3; description "Links are OC-192"; } enum "oc768" { value 4; description "Links are OC-768"; } enum "mixed" { value 5; description "Links are of different speeds"; } } description "Link speed of members of container"; } } // container sonet container atm { uses apply-advanced; leaf member-interface-speed { type enumeration { enum "oc3" { value 0; description "Links are OC-3"; } enum "oc12" { value 1; description "Links are OC-12"; } enum "oc48" { value 2; description "Links are OC-48"; } } description "Link speed of members of container"; } } // container atm container channelized-sonet { uses apply-advanced; leaf member-interface-speed { type enumeration { enum "coc3" { value 0; description "Links are COC-3"; } enum "coc12" { value 1; description "Links are COC-12"; } enum "coc48" { value 2; description "Links are COC-48"; } enum "coc192" { value 3; description "Links are COC-192"; } enum "coc768" { value 4; description "Links are COC-768"; } } description "Link speed of members of container"; } } // container channelized-sonet container channelized-sdh { uses apply-advanced; leaf member-interface-speed { type enumeration { enum "cstm1" { value 0; description "Links are cstm-1"; } enum "cstm4" { value 1; description "Links are cstm-4"; } enum "cstm16" { value 2; description "Links are cstm-16"; } enum "coc64" { value 3; description "Links are cstm-64"; } enum "cstm256" { value 4; description "Links are cstm256"; } } description "Link speed of members of container"; } } // container channelized-sdh } // choice member_interface_type_choice } // container member-interface-type container redundancy { description "Container interface redundancy options"; uses apply-advanced; container hold-time { description "Hold time for link up and link down"; leaf up { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 65534"; } } units "milliseconds"; description "Link up hold time"; } leaf down { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 65534"; } } units "milliseconds"; description "Link down hold time"; } } // container hold-time } // container redundancy leaf-list container-list { type union { type jt:interface-device; type string { pattern "<.*>|$.*"; } } ordered-by user; description "List of container interfaces this member link is associated to"; } choice redundancy-type { choice aps-redundancy { leaf primary { type empty; description "This member link is primary interface of the container"; } leaf standby { type empty; description "This member link is standby interface of the container"; } } // choice aps-redundancy } // choice redundancy-type leaf fast-aps { type empty; description "Fast APS switch"; } leaf allow-configuration-override { type empty; description "Allow physical configuration of member link to override container configuration"; } } // container container-options container layer2-policer { description "Layer2 policing for interface"; uses apply-advanced; choice layer2-input-policer-choice { leaf input-policer { junos:must "(!("firewall policer $$ then forwarding-class"))"; junos:must-message "Forwarding class cannot be modified for Layer 2 policer"; junos:must "(!("firewall policer $$ then loss-priority medium-low"))"; junos:must-message "Loss priority 'medium-low' is not valid for Layer 2 policer"; junos:must "(!("firewall policer $$ then loss-priority low"))"; junos:must-message "Loss priority 'low' is not valid for Layer 2 policer"; junos:must "("firewall policer $$ physical-interface-policer")"; junos:must-message "Layer 2 policer must be a physical interface policer"; type string; description "Two-color policer for received packets"; } leaf input-hierarchical-policer { type string; description "Hierarchical policer for received packets"; } } // choice layer2-input-policer-choice } // container layer2-policer list unit { key "name"; description "Logical interface"; leaf name { type string; } uses apply-advanced; leaf alias { junos:must "(!("interfaces interface-range $$"))"; junos:must-message "Interface alias cannot be an existing interface range name"; type string; description "Interface alias"; } leaf enhanced-convergence { type empty; description "Optimize convergence time for L3"; } leaf proxy-macip-advertisement { type empty; description "Proxy advertisement of type 2 MAC+IP route for EVPN"; } leaf virtual-gateway-accept-data { type empty; description "Accept packets destined for virtual gateway address"; } container peer-psd { presence "enable peer-psd"; description "Peer psd"; leaf psd-name { junos:must "(".. .. peer-interface")"; junos:must-message "peer-interface must be configured on this interface"; type string; description "Peer psd name"; } } // container peer-psd container peer-interface { presence "enable peer-interface"; description "Peer interface"; uses apply-advanced; leaf interface-name { junos:must "((".. .. peer-psd" || "interfaces $$-IFL peer-interface"))"; junos:must-message "Peer interface or peer psd must be configured"; type union { type jt:interface-unit; type string { pattern "<.*>|$.*"; } } description "Peer interface name"; } } // container peer-interface container interface-shared-with { junos:must "("chassis system-domains")"; junos:must-message "Chassis system-domains must be configured"; presence "enable interface-shared-with"; description "Specify which PSD owns this logical interface"; uses apply-advanced; leaf psd-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)"; } } // container interface-shared-with choice enable-disable { leaf disable { type empty; description "Disable this logical interface"; } } // choice enable-disable leaf passive-monitor-mode { type empty; description "Use interface to tap packets from another router"; } container account-layer2-overhead { presence "enable account-layer2-overhead"; description "Account layer2 overhead in IFL byte statistics"; uses apply-advanced; leaf overhead-value { junos:must "((!(".. ingress") && !(".. egress")))"; junos:must-message "Do not use the options ingress or egress when adjust values are specified"; type union { type string { pattern "<.*>|$.*"; } type int8 { range "-128 .. 127"; } } units "bytes"; description "Layer2 overhead bytes to be accounted in ingress and egress"; } leaf ingress { type union { type string { pattern "<.*>|$.*"; } type int8 { range "-128 .. 127"; } } units "bytes"; description "Layer2 overhead bytes to be accounted in ingress"; } leaf egress { type union { type string { pattern "<.*>|$.*"; } type int8 { range "-128 .. 127"; } } units "bytes"; description "Layer2 overhead bytes to be accounted in egress"; } } // container account-layer2-overhead leaf clear-dont-fragment-bit { type empty; description "Clear DF bit in packet (AS PIC and J-series only as well as MIF)"; } leaf description { type string; description "Text description of interface"; } leaf metadata { type string; description "Text metadata attached to interface"; } leaf encapsulation { type enumeration { enum "atm-nlpid" { value 0; description "ATM NLPID encapsulation"; } enum "atm-cisco-nlpid" { value 1; description "Cisco-compatible ATM NLPID encapsulation"; } enum "atm-snap" { value 2; description "ATM LLC/SNAP encapsulation"; } enum "atm-vc-mux" { value 3; description "ATM VC multiplexing"; } enum "atm-ccc-vc-mux" { value 4; description "ATM VC for CCC"; } enum "atm-tcc-vc-mux" { value 5; description "ATM VC for translational cross-connect"; } enum "atm-tcc-snap" { value 6; description "ATM LLC/SNAP for translational cross-connect"; } enum "atm-ccc-cell-relay" { value 7; description "ATM cell relay for CCC"; } enum "vlan-vci-ccc" { value 8; description "CCC for VLAN Q-in-Q and ATM VPI/VCI interworking"; } enum "ether-over-atm-llc" { value 9; description "Ethernet over ATM (LLC/SNAP) encapsulation"; } enum "ether-vpls-over-atm-llc" { value 10; description "Ethernet VPLS over ATM (bridging) encapsulation"; } enum "ppp-over-ether-over-atm-llc" { value 11; description "PPPoE over ATM (LLC/SNAP) encapsulation"; } enum "ppp-over-ether" { junos:must "(!("forwarding-options hyper-mode"))"; junos:must-message "To configure encapsulation ppp-over-ether, 'forwarding-options hyper-mode' should not be configured"; junos:must "(!(".. family"))"; junos:must-message "Can't configure protocol family with encapsulation ppp-over-ether"; value 12; description "PPPoE encapsulation"; } enum "atm-ppp-vc-mux" { value 13; description "ATM PPP over raw AAL5"; } enum "atm-ppp-llc" { value 14; description "ATM PPP over AAL5/LLC"; } enum "atm-mlppp-llc" { value 15; description "ATM MLPPP over AAL5/LLC"; } enum "frame-relay-ppp" { junos:must "(!(".. family inet6"))"; junos:must-message "family inet6 is not supported on encapsulation frame-relay-ppp"; junos:must "(!(".. family inet"))"; junos:must-message "family inet is not supported on encapsulation frame-relay-ppp"; junos:must "(".. .. encapsulation frame-relay")"; junos:must-message "Physical link-layer encapsulation must be frame-relay"; value 16; description "PPP over Frame Relay"; } enum "frame-relay-ccc" { value 17; description "Frame Relay DLCI for CCC"; } enum "frame-relay" { value 18; description "Frame Relay DLCI"; } enum "frame-relay-tcc" { value 19; description "Frame Relay DLCI for translational cross-connect"; } enum "frame-relay-ether-type" { junos:must "((".. .. encapsulation flexible-frame-relay" || (".. .. encapsulation frame-relay-ether-type" || ".. .. encapsulation frame-relay-ether-type-tcc")))"; junos:must-message "Interface encapsulation must be cisco-compatible or flexible frame relay"; value 20; description "Cisco-compatible Frame Relay Encapsulation DLCI"; } enum "frame-relay-ether-type-tcc" { value 21; description "Cisco-compatible Frame Relay Encapsulation DLCI for TCC"; } enum "ether-vpls-fr" { value 22; description "Ethernet VPLS over Frame Relay (bridging) encapsulation"; } enum "vlan-ccc" { value 23; description "802.1q tagging for a cross-connect"; } enum "ethernet-ccc" { value 24; description "Ethernet for a cross-connect"; } enum "vlan-vpls" { value 25; description "VLAN virtual private LAN service"; } enum "vlan-bridge" { value 26; description "VLAN layer-2 bridging"; } enum "ethernet-tcc" { value 27; description "Ethernet translational cross-connect"; } enum "dix" { value 28; description "Ethernet DIXv2 (RFC 894)"; } enum "ethernet" { value 29; description "Ethernet II (RFC 894)"; } enum "ethernet-vpls" { value 30; description "Ethernet II virtual private LAN service"; } enum "ethernet-bridge" { value 31; description "Ethernet II bridging"; } enum "vlan" { value 32; description "802.1q-tagged Ethernet"; } enum "vlan-tcc" { value 33; description "802.1q tagging for a translational cross-connect"; } enum "multilink-ppp" { value 34; description "Multilink PPP"; } enum "multilink-frame-relay-end-to-end" { value 35; description "Multilink Frame Relay end-to-end (FRF.15)"; } enum "ppp-ccc" { value 36; description "Serial PPP device for a cross-connect"; } } description "Logical link-layer encapsulation"; } leaf mtu { type union { type string { pattern "<.*>|$.*"; } type uint32; } description "Maximum transmission unit packet size"; } choice pointedness { leaf point-to-point { type empty; description "Point-to-point connection"; } leaf multipoint { type empty; description "Multipoint connection"; } } // choice pointedness leaf bandwidth { type string; description "Logical unit bandwidth (informational only)"; } leaf global-layer2-domainid { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "5 .. 4094"; } } description "Global Layer-2 Identifier for this interface"; } choice traps-choice { leaf traps { type empty; description "Enable SNMP notifications on state changes"; } leaf no-traps { type empty; description "Don't enable SNMP notifications on state changes"; } } // choice traps-choice choice routing-services-choice { leaf routing-services { type empty; status deprecated; description "Enable routing services"; } leaf no-routing-services { type empty; status deprecated; description "Don't enable routing services"; } } // choice routing-services-choice container routing-service { description "Routing Services on this interface"; uses apply-advanced; choice enable-disable { leaf enable { type empty; description "Enable Routing Service"; } leaf disable { type empty; description "Disable Routing Service"; } } // choice enable-disable } // container routing-service container arp-resp { presence "enable arp-resp"; description "Knob to control ARP response on the interface, default is restricted"; choice arp-response-options { leaf unrestricted { type empty; description "Enable unrestricted ARP respone on the interface"; } leaf restricted { type empty; description "Enable restricted proxy ARP response on the interface"; } } // choice arp-response-options } // container arp-resp container proxy-arp { junos:must "(!("switch-options no-arp-trap "))"; junos:must-message "Cannot enable proxy ARP with no-arp-trap"; presence "enable proxy-arp"; description "Enable proxy ARP on the interface, default is unrestricted"; choice proxyarp-options { leaf unrestricted { type empty; description "Enable unrestricted proxy ARP on the interface"; } leaf restricted { type empty; description "Enable restricted proxy ARP on the interface"; } } // choice proxyarp-options } // container proxy-arp choice vlan_choice { leaf vlan-id { junos:must "(!("interfaces ${interface} stacked-vlan-tagging"))"; junos:must-message "vlan-id is not supported on stacked-vlan-tagging mode"; type string; description "Virtual LAN identifier value for 802.1q VLAN tags"; } leaf vlan-id-range { junos:must "(("interfaces ${interface} vlan-tagging" || "interfaces ${interface} flexible-vlan-tagging"))"; junos:must-message "valid only with vlan-tagging or flexible-vlan-tagging mode"; type jt:vlan-range; description "Virtual LAN identifier range of form vid1-vid2"; } leaf-list inner-vlan-id-swap-ranges { type jt:vlan-range; description "Inner vlan-id swap range(s) of form vid1-vid2 for dynamic L2 VLANs"; } leaf-list vlan-id-list { junos:must "((" .. encapsulation vlan-ccc" || ("interfaces ${interface} encapsulation extended-vlan-ccc" || (" .. encapsulation vlan-vpls" || ("interfaces ${interface} encapsulation extended-vlan-vpls" || (" .. encapsulation vlan-bridge" || "interfaces ${interface} encapsulation extended-vlan-bridge"))))))"; junos:must-message "valid only with ccc/vpls/bridge encapsulation"; junos:must "(("interfaces ${interface} vlan-tagging" || "interfaces ${interface} flexible-vlan-tagging"))"; junos:must-message "valid only with vlan-tagging or flexible-vlan-tagging mode"; type jt:vlan-range; description "List of VLAN identifiers"; } leaf-list vlan-tag { type string; ordered-by user; status deprecated; description "IEEE 802.1q tag list for VLAN tagged frames"; } container vlan-tags { junos:must "((!("interfaces ${interface} vlan-tagging") || !((". inner" || (". inner-range" || ". inner-list")))))"; junos:must-message "inner/inner-range/inner-list is valid only on stacked-vlan-tagging and flexible-vlan-tagging mode"; junos:must "((!("interfaces ${interface} stacked-vlan-tagging") || (". inner" || (". inner-range" || ". inner-list"))))"; junos:must-message "inner/inner-range/inner-list must be defined for stacked-vlan-tagging mode"; junos:must "((".. demux-options" || ("interfaces ${interface} vlan-tagging" || ("interfaces ${interface} stacked-vlan-tagging" || "interfaces ${interface} flexible-vlan-tagging"))))"; junos:must-message "valid only with vlan-tagging, stacked-vlan-tagging or flexible-vlan-tagging mode"; presence "enable vlan-tags"; description "IEEE 802.1q tags"; leaf outer { type string; description "[tpid.]vlan-id, tpid format is 0xNNNN and is optional"; } choice inner_choice { leaf inner { type string; description "[tpid.]vlan-id, tpid format is 0xNNNN and is optional"; } leaf inner-range { type string { junos:posix-pattern "^((0[Xx][0-9A-Fa-f]{4}.){0,1}([1-9][0-9]{0,2}|[1-3][0-9]{3}|40[0-8][0-9]|409[0-4])-([1-9][0-9]{0,2}|[1-3][0-9]{3}|40[0-8][0-9]|409[0-4]))$"; junos:pattern-message "vid in vlan-tag ([0xNNNN.]vid1-vid2) must be 1 to 4094"; } description "[tpid.]vid1-vid2, tpid format is 0xNNNN and is optional"; } leaf-list inner-list { junos:must "((" .. .. encapsulation vlan-ccc" || ("interfaces ${interface} encapsulation extended-vlan-ccc" || (" .. .. encapsulation vlan-vpls" || ("interfaces ${interface} encapsulation extended-vlan-vpls" || (" .. .. encapsulation vlan-bridge" || "interfaces ${interface} encapsulation extended-vlan-bridge"))))))"; junos:must-message "valid only with ccc/vpls/bridge encapsulation"; type jt:vlan-range; description "List of VLAN identifiers"; } } // choice inner_choice } // container vlan-tags } // choice vlan_choice leaf native-inner-vlan-id { junos:must "((".. vlan-tags" || ".. family bridge inner-vlan-id-list"))"; junos:must-message "native-inner-vlan-id can be specified only on a dual vlan tagged unit"; junos:must "("interfaces ${interface} flexible-vlan-tagging")"; junos:must-message "native-inner-vlan-id can be specified only with flexible-vlan-tagging mode"; type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 4094"; } } description "Native virtual LAN identifier for singly tagged frames"; } container accept-source-mac { junos:must "(".. family ethernet-switching")"; junos:must-message "source mac filters are allowed only on interfaces with family ethernet-switching"; description "Remote media access control address to/from which to accept traffic"; uses apply-advanced; list mac-address { key "name"; description "Remote MAC address"; uses mac_list; } // list mac-address } // container accept-source-mac container input-vlan-map { description "VLAN map operation on input"; uses vlan_map; } // container input-vlan-map container output-vlan-map { description "VLAN map operation on output"; uses vlan_map; } // container output-vlan-map leaf swap-by-poppush { type empty; description "Pop original vlan tag and then push a new vlan tag"; } leaf receive-lsp { type string; description "Name of incoming label-switched path"; } leaf transmit-lsp { type string; description "Name of outgoing label-switched path"; } leaf dlci { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 1022"; } } description "Frame Relay data-link control identifier"; } leaf multicast-dlci { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 1022"; } } description "Frame Relay data-link control identifier for multicast packets"; } choice vci_type { leaf vci { junos:must "(!(".. encapsulation vlan-vci-ccc"))"; junos:must-message "'vci-range' must be used with encapsulation vlan-vci-ccc"; type jt:atm-vci; description "ATM point-to-point virtual circuit identifier ([vpi.]vci)"; } leaf allow-any-vci { type empty; description "Allow all VCIs to open in atm-ccc-cell-relay mode"; } leaf vpi { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "ATM point-to-point virtual path identifier (vpi)"; } leaf trunk-id { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 31"; } } description "ATM trunk identifier"; } } // choice vci_type leaf no-vpivci-swapping { junos:must "(".. encapsulation atm-ccc-cell-relay")"; junos:must-message "encapsulation must be atm-ccc-cell-relay"; type empty; description "Do not swap VPI/VCI for Cell Relay"; } choice psn_vci_type { leaf psn-vci { junos:must "(".. encapsulation atm-ccc-cell-relay")"; junos:must-message "encapsulation must be atm-ccc-cell-relay"; junos:must "(!(".. no-vpivci-swapping"))"; junos:must-message "no-vpivci-swapping must not be configured"; type jt:atm-vci; description "PSN VCI"; } leaf psn-vpi { junos:must "(".. encapsulation atm-ccc-cell-relay")"; junos:must-message "encapsulation must be atm-ccc-cell-relay"; junos:must "(!(".. no-vpivci-swapping"))"; junos:must-message "no-vpivci-swapping must not be configured"; type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "PSN VPI"; } } // choice psn_vci_type container atm-l2circuit-mode { description "Select ATM Layer 2 circuit transport mode"; choice mode_choice { leaf cell { type empty; description "ATM Layer 2 circuit cell mode"; } leaf aal5 { type empty; description "ATM Layer 2 circuit AAL5 mode"; } } // choice mode_choice } // container atm-l2circuit-mode container vci-range { junos:must "(!(".. vci"))"; junos:must-message "'vci-range' and 'vci' statements cannot co-exist"; description "ATM VCI range start <start-vci> end <end-vci>"; leaf start { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "32 .. 4094"; } } description "ATM VCI range's start value"; } leaf end { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "32 .. 4094"; } } description "ATM VCI range's end value"; } } // container vci-range leaf trunk-bandwidth { type string; units "bits per second"; description "ATM trunk bandwidth"; } leaf multicast-vci { type jt:atm-vci; description "ATM virtual circuit identifier for multicast packets"; } container shaping { description "Virtual circuit traffic-shaping options"; uses dcd_shaping_config; } // container shaping container oam-period { description "OAM cell period"; choice oam_period_choices { leaf oam-period { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 900"; } } units "seconds"; description "OAM cell period"; } container disable { presence "enable disable"; description "Disable F5 OAM loopback"; } // container disable } // choice oam_period_choices } // container oam-period container oam-liveness { description "OAM virtual circuit liveness parameters"; uses apply-advanced; leaf up-count { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 255"; } } description "Number of OAM cells to consider VC up"; } leaf down-count { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 255"; } } description "Number of OAM cells to consider VC down"; } } // container oam-liveness container ppp-options { description "Point-to-Point Protocol interface-specific options"; uses ppp_options_type; } // container ppp-options container pppoe-options { description "PPP over Ethernet interface-specific options"; uses pppoe_options_type; } // container pppoe-options choice keepalive_choices { container keepalives { presence "enable keepalives"; description "Send or demand keepalive messages"; uses keepalives_type; } // container keepalives leaf no-keepalives { type empty; description "Do not send or demand keepalive messages"; } } // choice keepalive_choices leaf inverse-arp { type empty; description "Enable inverse ARP"; } leaf transmit-weight { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 32767"; } } description "ATM2 transmit weight for VC under VP tunnel"; } container epd-threshold { description "Early packet discard threshold for ATM2"; uses epd_threshold_config; } // container epd-threshold leaf cell-bundle-size { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 176"; } } units "cells"; description "L2 circuit cell bundle size"; } leaf cell-bundle-timeout { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 512"; } } units "microseconds"; description "L2 circuit cell bundle timeout"; } leaf plp-to-clp { type empty; description "Enable ATM2 PLP to CLP copy"; } leaf atm-scheduler-map { type union { type string { pattern "default"; } type string; } description "Assign ATM2 CoS scheduling map"; } leaf mrru { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1500 .. 4500"; } } units "bytes"; description "Maximum received reconstructed unit"; } leaf short-sequence { type empty; description "Short sequence number header format (MLPPP only)"; } leaf fragment-threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "64 .. 4500"; } } units "bytes"; description "Fragmentation threshold"; } leaf drop-timeout { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "0 .. 2000"; } } units "milliseconds"; description "Drop timeout"; } leaf disable-mlppp-inner-ppp-pfc { type empty; description "Disable compression for inner PPP header in MLPPP payload"; } leaf minimum-links { type union { type string { pattern "<.*>|$.*"; } type uint16; } description "Minimum number of links to sustain the bundle"; } leaf multilink-max-classes { type union { type string { pattern "<.*>|$.*"; } type uint16; } description "Number of multilink classes"; } leaf interleave-fragments { type empty; description "Interleave long packets with high priority ones"; } leaf link-layer-overhead { type jt:unsigned-float; description "Link layer bit stuffing overhead (0.0 .. 50.0 percent)"; } leaf accounting-profile { junos:must "(("accounting-options interface-profile $$" || "accounting-options flat-file-profile $$"))"; junos:must-message "referenced accounting profile must be defined"; type string; description "Accounting profile name"; } leaf peer-unit { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 16385"; } } description "Peer unit number"; } container tunnel { description "Tunnel parameters"; uses apply-advanced; container encapsulation { presence "enable encapsulation"; description "Encapsulation over tunnel"; container vxlan-gpe { junos:must "((!(".. udp") && !(".. ipip")))"; junos:must-message "Only one encapsulation can be set per IFL"; presence "enable vxlan-gpe"; uses apply-advanced; container source { uses apply-advanced; leaf address { junos:must "(!(".. interface"))"; junos:must-message "To configure address interface must be not set"; type jt:ipv4addr; description "Interface address prefix"; } leaf mac-address { type jt:mac-addr; description "Interface source mac address"; } leaf interface { type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Name of the interface"; } } // container source container destination { uses apply-advanced; leaf address { type jt:ipv4addr; description "Interface address prefix"; } leaf mac-address { type jt:mac-addr; description "Interface destination mac address"; } } // container destination leaf tunnel-endpoint { type enumeration { enum "vxlan" { value 0; description "To configure vxlan tunnel-end-point"; } } description "Tunnel end point type"; } leaf destination-udp-port { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65535"; } } description "Value to write to the destination-udp-port field"; } leaf vni { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 16777214"; } } description "Value to write to the vni field"; } } // container vxlan-gpe container udp { junos:must "((!(".. .. .. family ccc") && !(".. .. .. family tcc")))"; junos:must-message "Only inet, inet6, mpls, iso families allowed for udp tunnel in encap mode"; junos:must "((!(".. vxlan-gpe") && (!(".. ipip") && !("..gre"))))"; junos:must-message "Only one encapsulation can be set per IFL"; presence "enable udp"; description "Family for tunnel encapsulation udp"; uses apply-advanced; container source { uses apply-advanced; leaf address { junos:must "(!(".. interface"))"; junos:must-message "To configure address interface must be not set"; type jt:ipv4addr; description "Interface address prefix"; } leaf interface { type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Name of the interface"; } } // container source container destination { uses apply-advanced; leaf address { type jt:ipv4addr; description "Interface address prefix"; } } // container destination } // container udp container ipip { junos:must "((!(".. .. .. family ccc") && (!(".. .. .. family tcc") && !(".. .. .. family iso"))))"; junos:must-message "Only inet, inet6, mpls families allowed for ipip tunnel in decap/encap mode"; junos:must "((!(".. udp") && (!(".. vxlan-gpe") && !(".. gre"))))"; junos:must-message "Only one encapsulation can be set per IFL"; presence "enable ipip"; description "Family for tunnel encapsulation ipip"; uses apply-advanced; container source { uses apply-advanced; leaf address { junos:must "(!(".. interface"))"; junos:must-message "To configure address interface must be not set"; type jt:ipv4addr; description "Interface address prefix"; } leaf interface { type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Name of the interface"; } } // container source container destination { uses apply-advanced; leaf address { type jt:ipv4addr; description "Interface address prefix"; } } // container destination } // container ipip } // container encapsulation leaf source { type jt:ipaddr; description "Tunnel source"; } leaf destination { type jt:ipaddr; description "Tunnel destination"; } leaf key { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 4294967295"; } } description "Tunnel key"; } leaf backup-destination { junos:must "(!(".. destination $$"))"; junos:must-message "Backup and primary tunnel destinations must be different"; type jt:ipaddr; description "Backup tunnel destination"; } choice fragmentation { leaf allow-fragmentation { type empty; description "Do not set DF bit on packets"; } leaf do-not-fragment { type empty; description "Set DF bit on packets"; } } // choice fragmentation leaf ttl { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 255"; } } description "Time to live"; } leaf traffic-class { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "TOS/Traffic class field of IP-header"; } leaf flow-label { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 1048575"; } } description "Flow label field of IP6-header"; } choice path-mtu-discovery-choice { leaf path-mtu-discovery { type empty; description "Enable path MTU discovery for tunnels"; } leaf no-path-mtu-discovery { type empty; description "Don't enable path MTU discovery for tunnels"; } } // choice path-mtu-discovery-choice container routing-instance { description "Routing instance to which tunnel ends belong"; uses apply-advanced; leaf destination { junos:must "(("routing-instances $$" || any "tenants <*> routing-instances $$"))"; junos:must-message "referenced routing-instance must be defined"; type string { junos:posix-pattern "!^((__.*__)|(all)|(.*[ ].*)|("")|(.{129,}))$"; junos:pattern-message "Must be a non-reserved string of 128 characters or less with no spaces."; } description "Routing instance of tunnel destination"; } } // container routing-instance } // container tunnel leaf compression-device { type union { type jt:interface-unit; type string { pattern "<.*>|$.*"; } } description "Logical interface used for compression"; } container atm-policer { junos:must "(".. family")"; junos:must-message "Family must be defined for a unit with atm-policer"; description "ATM policing for logical interface"; uses apply-advanced; leaf input-atm-policer { type string; description "Input atm policer"; } } // container atm-policer container layer2-policer { junos:must "(".. family")"; junos:must-message "Family must be defined for a unit with layer2-policer"; description "Layer2 policing for logical interface"; uses apply-advanced; choice layer2-input-policer-choice { leaf input-policer { junos:must "(!("firewall policer $$ then forwarding-class"))"; junos:must-message "Forwarding class cannot be modified for Layer 2 policer"; junos:must "(!("firewall policer $$ then loss-priority medium-low"))"; junos:must-message "Loss priority 'medium-low' is not valid for Layer 2 policer"; junos:must "(!("firewall policer $$ then loss-priority low"))"; junos:must-message "Loss priority 'low' is not valid for Layer 2 policer"; junos:must "("firewall policer $$ logical-interface-policer")"; junos:must-message "Layer 2 policer must be a logical interface policer"; type string; description "Two-color policer for received packets"; } case case_2 { } // case case_2 leaf input-three-color { junos:must "(("firewall three-color-policer $$ single-rate color-blind" || ("firewall three-color-policer $$ single-packet-rate color-blind" || ("firewall three-color-policer $$ two-rate color-blind" || "firewall three-color-policer $$ two-packet-rate color-blind"))))"; junos:must-message "Layer 2 input three-color policer must be color-blind"; junos:must "("firewall three-color-policer $$ logical-interface-policer")"; junos:must-message "Layer 2 three-color policer must be a logical interface policer"; type string; description "Color-blind three-color policer for received packets"; } } // choice layer2-input-policer-choice choice layer2-output-policer-choice { leaf output-policer { junos:must "(!("firewall policer $$ then forwarding-class"))"; junos:must-message "Forwarding class cannot be modified for Layer 2 policer"; junos:must "(!("firewall policer $$ then loss-priority medium-low"))"; junos:must-message "Loss priority 'medium-low' is not valid for Layer 2 policer"; junos:must "(!("firewall policer $$ then loss-priority low"))"; junos:must-message "Loss priority 'low' is not valid for Layer 2 policer"; junos:must "("firewall policer $$ logical-interface-policer")"; junos:must-message "Layer 2 policer must be a logical interface policer"; type string; description "Two-color policer for transmitted packets"; } leaf output-three-color { junos:must "("firewall three-color-policer $$ logical-interface-policer")"; junos:must-message "Layer 2 three-color policer must be a logical interface policer"; type string; description "Three-color policer for transmitted packets"; } } // choice layer2-output-policer-choice } // container layer2-policer container filter { description "Filters to apply to all families configured under this logical interface"; uses apply-advanced; choice input_choice { container input { description "Name of filter to be applied to received packets"; leaf filter-name { type string; description "Name of the filter"; } leaf shared-name { type string; description "Filter shared-name of instances of interface-shared filter"; } leaf precedence { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Precedence of the filter"; } } // container input } // choice input_choice choice output_choice { container output { description "Name of filter to be applied to transmitted packets"; leaf filter-name { type string; description "Name of the filter"; } leaf shared-name { type string; description "Filter shared-name of instances of interface-shared filter"; } leaf precedence { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Precedence of the filter"; } } // container output } // choice output_choice } // container filter leaf statistics { type empty; description "Enable statistics collection in PFE"; } choice virtual-gateway { leaf no-auto-virtual-gateway-esi { junos:must "((any ".. family inet address <*> virtual-gateway-address" || any ".. family inet6 address <*> virtual-gateway-address"))"; junos:must-message "Only when virtual gateway address is configured"; type empty; description "Disable auto ESI generation for virtual gateway address"; } container virtual-gateway-esi { description "ESI configuration of virtual gateway"; uses apply-advanced; leaf identifier { junos:must "(unique "interfaces <*> unit <*> virtual-gateway-esi $$")"; junos:must-message "virtual-gateway-esi value must be unique under all IFDs and IFLs"; junos:must "(unique "interfaces <*> unit <*> esi $$")"; junos:must-message "ESI value must be unique under all IFDs and IFLs"; type jt:esi; description "ESI value for the interface"; } choice mode { leaf single-active { type empty; description "Single-active mode"; } leaf all-active { type empty; description "All-active mode"; } } // choice mode } // container virtual-gateway-esi } // choice virtual-gateway container service { description "Service operations"; uses apply-advanced; list pcef { key "name"; ordered-by user; description "PCEF configuration"; leaf name { junos:must "((".. family inet service" || ".. family inet6 service"))"; junos:must-message "Must be configured along with a family inet/inet6 service."; type string; description "PCEF Profile name"; } uses apply-advanced; leaf activate-all { junos:must "(!("activate"))"; junos:must-message "Can't be configured with activate-rule or activate- rulebase."; type empty; description "Activate all rules and rulebases in the pcef profile"; } list activate { key "name"; ordered-by user; description "Name of pcef profile rule or rulebase to activate"; leaf name { type string; description "Name of pcef profile rule or rulebase to activate"; } uses apply-advanced; } // list activate } // list pcef } // container service choice generate-eui64-choice { leaf generate-eui64 { junos:must "(".. family inet6 unnumbered-address")"; junos:must-message "generate-eui64 attribute must be set when unnumbered-address is configured under family inet6"; type empty; description "To generate Link Local EUI-64 addresses"; } leaf no-generate-eui64 { junos:must "(".. family inet6 unnumbered-address")"; junos:must-message "generate-eui64 attribute must be set when unnumbered-address is configured under family inet6"; type empty; description "Don't to generate Link Local EUI-64 addresses"; } } // choice generate-eui64-choice container family { junos:must "(!(".. encapsulation ppp-over-ether"))"; junos:must-message "Can't configure protocol family with encapsulation ppp-over-ether"; description "Protocol family"; container inet { junos:must "(!(".. .. .. encapsulation vlan-vpls"))"; junos:must-message "Can't configure protocol family inet with encapsulation vpls"; presence "enable inet"; description "IPv4 parameters"; uses apply-advanced; container dhcp { junos:must "(!(any "forwarding-options dhcp-relay group <*> interface ${interface}.${unit}"))"; junos:must-message "Incompatible with the interface configured under 'forwarding-options dhcp-relay group'"; junos:must "(!("system services dhcp"))"; junos:must-message "Incompatible with the dhcp server configured under 'system services dhcp'"; junos:must "(!("system autoinstallation interfaces"))"; junos:must-message "Incompatible with 'system autoinstallation interfaces'"; junos:must "(!(".. address"))"; junos:must-message "Incompatible with interface assigned with address"; junos:must "(!("system autoinstallation"))"; junos:must-message "Incompatible with 'system autoinstallation'"; presence "enable dhcp"; description "Configure DHCP Client"; uses apply-advanced; container client-identifier { description "DHCP Server identifies a client by client-identifier value "; choice client-identifier-choice { leaf ascii { type string; description "Client identifier as an ASCII string"; } leaf hexadecimal { type string { junos:posix-pattern "^[[:xdigit:]]+$"; junos:pattern-message "Must be hexadecimal digits (0-9, a-f, A-F)"; } description "Client identifier as a hexadecimal string"; } } // choice client-identifier-choice } // container client-identifier leaf lease-time { type string; units "seconds"; description "Default lease time requested in "; } leaf retransmission-attempt { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 6"; } } default "4"; description "Number of attempts to retransmit the DHCP client protocol packet"; } leaf retransmission-interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "4 .. 64"; } } units "seconds"; default "4"; description "Number of seconds between successive retransmission"; } leaf server-address { type jt:ipv4addr; description "DHCP Server-address"; } leaf update-server { type empty; description "Propagate TCP/IP settings to DHCP server "; } leaf vendor-id { type string; description "Vendor class id for the DHCP Client"; } } // container dhcp container targeted-broadcast { presence "enable targeted-broadcast"; description "Directed broadcast"; uses apply-advanced; choice targeted-bcast-choice { leaf forward-and-send-to-re { type empty; description "Allow packets to be forwarded and sent to re"; } leaf forward-only { type empty; description "Allow packets only to be forwarded"; } } // choice targeted-bcast-choice } // container targeted-broadcast leaf destination-class-usage { type empty; status deprecated; description "Enable destination class usage on this interface"; } leaf transit-options-packets { type empty; status deprecated; description "Transit IP options packets (don't send to Routing Engine)"; } leaf transit-ttl-exceeded { type empty; status deprecated; description "Transit IP TTL-exceeded packets (don't send to Routing Engine)"; } leaf receive-options-packets { type empty; description "Receive IP options packets (don't send to Routing Engine)"; } leaf receive-ttl-exceeded { type empty; description "Receive IP TTL-exceeded packets (don't send to Routing Engine)"; } container accounting { description "Configure interface-based accounting options"; uses apply-advanced; container source-class-usage { description "Enable source class usage on this interface"; uses apply-advanced; leaf input { type empty; description "Specify this interface for source-class-usage input"; } leaf output { type empty; description "Specify this interface for source-class-usage output"; } } // container source-class-usage leaf destination-class-usage { type empty; description "Enable destination class usage on this interface"; } } // container accounting leaf mac-validate { type enumeration { enum "strict" { value 0; description "Strict mac-validation"; } enum "loose" { value 1; description "Loose mac-validation"; } } description "Validate source MAC address"; } container rpf-check { presence "enable rpf-check"; description "Enable reverse-path-forwarding checks on this interface"; uses apply-advanced; leaf fail-filter { type string; description "Name of filter applied to packets failing RPF check"; } container mode { description "Mode for reverse path forwarding"; leaf loose { type empty; description "Reverse-path-forwarding loose mode"; } } // container mode } // container rpf-check leaf mtu { type union { type uint32; type string { pattern "<.*>|$.*"; } } description "Protocol family maximum transmission unit"; } leaf arp-max-cache { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 2000000"; } } description "Max interface ARP nexthop cache size"; } leaf arp-new-hold-limit { junos:must "(".. arp-max-cache")"; junos:must-message "Interface max ARP cache size must be configured"; type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 2000000"; } } description "Max no. of new unresolved nexthops"; } leaf no-redirects { type empty; description "Do not redirect traffic"; } leaf no-neighbor-learn { type empty; description "Disable neighbor address learning on interface"; } leaf unconditional-src-learn { type empty; description "Glean from arp packets even when source cannot be validated"; } leaf multicast-only { type empty; description "Allow only multicast traffic (tunnels only)"; } leaf primary { type empty; description "Candidate for primary interface in system"; } leaf ipsec-sa { type string { length "1 .. 32"; } description "Name of security association"; } container filter { description "Packet filtering"; uses apply-advanced; choice input_choice { container input { description "Filter to be applied to received packets"; leaf filter-name { type string; description "Name of the filter"; } leaf shared-name { type string; description "Filter shared-name of instances of interface-shared filter"; } leaf precedence { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Precedence of the filter"; } } // container input leaf-list input-list { type string; ordered-by user; description "List of filter modules applied to received packets "; } } // choice input_choice choice output_choice { container output { description "Filter to be applied to transmitted packets"; leaf filter-name { type string; description "Name of the filter"; } leaf shared-name { type string; description "Filter shared-name of instances of interface-shared filter"; } leaf precedence { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Precedence of the filter"; } } // container output leaf-list output-list { type string; ordered-by user; description "List of filter modules applied to transmitted packets "; } } // choice output_choice container adf { description "Ascend Data Filter definition"; uses apply-advanced; list rule { key "name"; ordered-by user; description "Set of ADF rules"; leaf name { type string; description "Value for a single rule"; } uses apply-advanced; } // list rule leaf counter { type empty; description "Add a counter to each rule"; } leaf input-precedence { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Precedence of the input rules"; } leaf not-mandatory { type empty; description "No errors will be reported if no rules are present"; } leaf output-precedence { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Precedence of the output rules"; } } // container adf leaf group { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 255"; } } description "Group to which interface belongs"; } } // container filter container simple-filter { description "Filter for doing multifield classification"; uses apply-advanced; leaf input { type string; description "Name of simple filter applied to received packets"; } } // container simple-filter container policer { description "Interface policing"; uses apply-advanced; leaf arp { junos:must "(!(".. disable-arp-policer"))"; junos:must-message "Interface configuration can have either disable-arp-policer or arp policer configured"; junos:must "((!(".. .. .. .. peer-unit") || (".. .. .. .. encapsulation ethernet" || ".. .. .. .. encapsulation vlan")))"; junos:must-message "Interface encapsulation must be ethernet or vlan"; type string; description "Name of policer applied to received ARP packets"; } leaf input { junos:must "(!(".. .. input-hierarchical-policer"))"; junos:must-message "Both input policer and input hierarchical policer can not be applied on the same family"; type string; description "Name of policer applied to received packets"; } leaf output { type string; description "Name of policer applied to transmitted packets"; } } // container policer container sampling { junos:must "(("forwarding-options sampling family inet" || ("forwarding-options packet-capture" || any "forwarding-options sampling instance <*> family inet")))"; junos:must-message "Requires forwarding-options sampling or packet-capture config"; description "Interface sampling"; uses apply-advanced; leaf input { type empty; description "Sample all packets input on this interface"; } leaf output { type empty; description "Sample all packets output on this interface"; } } // container sampling list next-hop-tunnel { key "name"; ordered-by user; description "One or more next-hop tunnel tables"; leaf name { type string; description "Next-hop tunnel gateway address"; } uses apply-advanced; leaf ipsec-vpn { junos:must "("security ipsec vpn $$")"; junos:must-message "Referenced IPSec vpn must be defined under [edit security ipsec vpn] hierarchy level"; junos:must "(unique "interfaces st0 unit <*> family inet next-hop-tunnel <*> ipsec-vpn $$")"; junos:must-message "Referenced IPSec vpn must be unique"; type string; description "Name of IPSec VPN"; } } // list next-hop-tunnel container tunnel-termination { presence "enable tunnel-termination"; description "Tunnel termination"; } // container tunnel-termination list address { junos:must "((!(".. unnumbered-address") && !(".. location-pool-address")))"; junos:must-message "address cannot be defined with unnumbered-address or location-pool-address simultaneously"; key "name"; ordered-by user; description "Interface address/destination prefix"; leaf name { type jt:ipv4prefix; description "Interface address/destination prefix"; } uses apply-advanced; leaf destination { type jt:ipv4addr; description "Destination address"; } leaf destination-profile { junos:must "("access group-profile $$ ppp")"; junos:must-message "referenced group-profile must be defined and must contain ppp statement"; type string; description "Profile to use for destination address"; } leaf broadcast { type jt:ipv4addr; description "Broadcast address"; } leaf primary { type empty; description "Candidate for primary address in system"; } leaf preferred { type empty; description "Preferred address on interface"; } leaf master-only { type empty; description "Master management IP address for router"; } list multipoint-destination { key "name"; ordered-by user; description "Multipoint NBMA destination"; leaf name { type jt:ipv4addr; description "Destination address"; } uses apply-advanced; choice link-address { leaf dlci { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 1022"; } } description "Frame Relay data-link control identifier"; } leaf vci { type jt:atm-vci; description "ATM virtual circuit identifier ([vpi.]vci)"; } } // choice link-address container shaping { description "Virtual circuit traffic-shaping options"; uses dcd_shaping_config; } // container shaping container oam-period { description "OAM cell period"; choice oam_period_choices { leaf oam_period { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 900"; } } units "seconds"; description "OAM cell period"; } container disable { presence "enable disable"; description "Disable OAM loopback"; } // container disable } // choice oam_period_choices } // container oam-period container oam-liveness { description "OAM virtual circuit liveness parameters"; uses apply-advanced; leaf up-count { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 255"; } } description "Number of OAM cells to consider VC up"; } leaf down-count { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 255"; } } description "Number of OAM cells to consider VC down"; } } // container oam-liveness leaf inverse-arp { type empty; description "Enable inverse ARP reply messages"; } leaf transmit-weight { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 32767"; } } description "ATM2 transmit weight for VC under VP tunnel"; } container epd-threshold { description "Early packet discard threshold for ATM2"; uses epd_threshold_config; } // container epd-threshold } // list multipoint-destination list arp { key "name"; ordered-by user; description "Static Address Resolution Protocol entries"; leaf name { type jt:ipv4addr; description "Destination IP address"; } leaf l2-interface { type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Layer 2 interface name for ARP entry"; } choice mac_address_type { leaf mac { type jt:mac-unicast; description "MAC address"; } leaf multicast-mac { type jt:mac-multicast; description "Multicast MAC address"; } } // choice mac_address_type leaf publish { junos:must "((".. mac" || ".. multicast-mac"))"; junos:must-message "mac or multicast-mac must be configured to publish"; type empty; description "Reply to ARP requests for this entry"; } } // list arp list host-discovery { junos:must "("system arp proactive-arp-detection ")"; junos:must-message "Proactive ARP Detection feature should be enabled"; key "name"; max-elements 8; ordered-by user; description "Discover servers IP based on subnet range"; leaf name { type jt:ipv4prefix; description "IP address subnet range"; } leaf aging-timer { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "10 .. 1200"; } } description "ARP aging timer"; } leaf discovery-interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "3 .. 300"; } } description "ARP proactive discovery time"; } } // list host-discovery list vrrp-group { key "name"; ordered-by user; description "VRRP group"; uses vrrp-group; } // list vrrp-group leaf virtual-gateway-address { junos:must "(!(".. vrrp-group"))"; junos:must-message "vrrp configuration incompatible with virtual gateway address"; type jt:ipv4addr; description "Virtual Gateway IP address"; } } // list address container unnumbered-address { description "Unnumbered interface address/destination prefix"; leaf source { junos:must "("interfaces $$-IFL family inet address")"; junos:must-message "referred interface must have address configured under family inet"; type union { type jt:interface-unit; type string { pattern "<.*>|$.*"; } } description "Interface from which to take local address"; } leaf preferred-source-address { type string; description "Preferred address on the donor interface"; } leaf destination { type jt:ipv4addr; description "Destination address"; } leaf destination-profile { junos:must "("access group-profile $$ ppp")"; junos:must-message "referenced group-profile must be defined and must contain ppp statement"; type string; description "Profile to use for destination address"; } } // container unnumbered-address leaf negotiate-address { junos:must "(!(".. .. .. .. encapsulation multilink-frame-relay-uni-nni"))"; junos:must-message "negotiate-address is not supported with family mlfr-uni-nni "; junos:must "(!(".. .. .. encapsulation multilink-frame-relay-end-to-end"))"; junos:must-message "negotiate-address is not supported with family mlfr-end-to-end "; junos:must "(!(".. location-pool-address"))"; junos:must-message "negotiate-address and location-pool-address must not be defined simultaneously"; junos:must "(!(".. unnumbered-address"))"; junos:must-message "negotiate-address and unnumbered-address must not be defined simultaneously"; junos:must "(!(".. address"))"; junos:must-message "negotiate-address and address must not be defined simultaneously"; type empty; description "Negotiate address with remote"; } leaf destination-udp-port { junos:must "(".. .. .. tunnel encapsulation udp")"; junos:must-message "destination-udp-port can be configured only for encapsulation udp on fti interface"; type union { type string { pattern "<.*>|$.*"; } type uint32 { range "10000 .. 10009"; } } description "Choose destination UDP port number"; } } // container inet container iso { junos:must "(!(".. .. encapsulation frame-relay-ppp"))"; junos:must-message "family iso is not supported on encapsulation frame-relay-ppp"; presence "enable iso"; description "OSI ISO protocol parameters"; uses apply-advanced; list address { key "name"; ordered-by user; description "Interface address"; leaf name { type jt:isoaddr; description "Interface address"; } uses apply-advanced; } // list address leaf mtu { type union { type uint32; type string { pattern "<.*>|$.*"; } } description "Protocol family maximum transmission unit"; } leaf destination-udp-port { junos:must "(".. .. .. tunnel encapsulation udp")"; junos:must-message "destination-udp-port can be configured only for encapsulation udp on fti interface"; type union { type string { pattern "<.*>|$.*"; } type uint32 { range "10030 .. 10039"; } } description "Choose destination UDP port number"; } } // container iso container inet6 { presence "enable inet6"; description "IPv6 protocol parameters"; uses apply-advanced; container dhcpv6-client { junos:must "(!("system services dhcp"))"; junos:must-message "Incompatible with the dhcp server configured under 'system services dhcp'"; junos:must "(!("system autoinstallation"))"; junos:must-message "Incompatible with 'system autoinstallation'"; junos:must "(!(".. address"))"; junos:must-message "Incompatible with interface assigned with address"; junos:must "(!(any "forwarding-options dhcp-relay dhcpv6 group <*> interface ${interface}.${unit}"))"; junos:must-message "DHCPv6 client and relay cannot be configured on the same interface "; junos:must "(!(any "system services dhcp-local-server dhcpv6 group <*> interface ${interface}.${unit}"))"; junos:must-message "DHCPv6 client and server cannot be configured on the same interface "; description "Dynamic Host Configuration Protocol DHCPv6 client configuration"; uses apply-advanced; leaf client-type { type enumeration { enum "stateful" { value 0; description "Stateful client type for address assignment."; } enum "autoconfig" { junos:must "("protocols router-advertisement interface ${interface}.${unit}")"; junos:must-message "Interface for ra messages is must for auto mode"; junos:must "(!("interfaces ${interface} unit ${unit} family inet6 dhcpv6-client update-router-advertisement"))"; junos:must-message "Incompatible with 'dhcpv6-client update-router-advertisement'"; junos:must "(!("interfaces ${interface} unit ${unit} family inet6 dhcpv6-client client-ia-type ia-pd"))"; junos:must-message "Incompatible with 'client-ia-type ia-pd'"; value 1; description "Autoconfig client type for router-advertisement"; } } description "DHCPv6 client type"; } list client-ia-type { key "name"; ordered-by user; description "DHCPv6 client identity association type"; leaf name { type enumeration { enum "ia-na" { value 0; description "Identity Association-Non-temporary Address"; } enum "ia-pd" { value 1; description "Identity Association-Prefix Address"; } } } uses apply-advanced; } // list client-ia-type container rapid-commit { presence "enable rapid-commit"; description "Option is used to signal the use of the two message exchange for address assignment"; } // container rapid-commit container prefix-delegating { junos:must "("interfaces ${interface} unit ${unit} family inet6 dhcpv6-client client-ia-type ia-pd")"; junos:must-message "Incompatible with out 'client-ia-type ia-pd'"; description "Prefix delegating parameters"; uses apply-advanced; leaf preferred-prefix-length { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 64"; } } description "Client preferred prefix length"; } leaf sub-prefix-length { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 127"; } } description "The sub prefix length for LAN interfaces"; } } // container prefix-delegating container client-identifier { description "DHCP Server identifies a client by client-identifier value "; leaf duid-type { type enumeration { enum "duid-llt" { value 0; description "Link-layer address plus time"; } enum "vendor" { value 1; description "Vendor-assigned unique ID based on Enterprise Number"; } enum "duid-ll" { value 2; description "Link-layer address"; } } description "DUID identifying a client"; } } // container client-identifier leaf vendor-id { type string { length "1 .. 60"; } description "Vendor class id for the dhcpv6 client"; } list req-option { key "name"; ordered-by user; description "DHCPV6 client requested option configuration"; leaf name { type enumeration { enum "dns-server" { value 0; description "Dns-server option"; } enum "domain" { value 1; description "Dns-server option"; } enum "ntp-server" { value 2; description "Ntp-server option"; } enum "time-zone" { value 3; description "Time-zone option"; } enum "sip-server" { value 4; description "Sip-server option"; } enum "sip-domain" { value 5; description "Sip-domain option"; } enum "nis-server" { value 6; description "Nis-server option"; } enum "nis-domain" { value 7; description "Nis-domain option"; } enum "fqdn" { value 8; description "Fully-qualified-domain option"; } enum "vendor-spec" { value 9; description "Vendor-spec option"; } enum "zero-touch-redirect" { value 10; description "Zero-touch-redirect"; } enum "bootfile-url" { value 11; description "Bootfile url"; } enum "bootfile-param" { value 12; description "Bootfile param"; } } } uses apply-advanced; } // list req-option container options { description "DHCP options"; uses apply-advanced; list number { key "name"; description "DHCP option code"; leaf name { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 254"; } } description "DHCP option identifier code"; } choice option-type-choice { leaf hex-string { type string { junos:posix-pattern "^[[:xdigit:]]+$"; junos:pattern-message "Must be hexadecimal digits (0-9, a-f, A-F)"; length "1 .. 510"; } description "Hexadecimal string"; } } // choice option-type-choice } // list number } // container options leaf retransmission-attempt { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 50000"; } } default "9"; description "Number of attempts to retransmit the DHCPV6 client protocol packet"; } } // container dhcpv6-client container rpf-check { presence "enable rpf-check"; description "Enable reverse-path-forwarding checks on this interface"; uses apply-advanced; leaf fail-filter { type string; description "Name of filter applied to packets failing RPF check"; } container mode { description "Mode for reverse path forwarding"; leaf loose { type empty; description "Reverse-path-forwarding loose mode"; } } // container mode } // container rpf-check container accounting { description "Interface-based accounting options"; uses apply-advanced; container source-class-usage { uses apply-advanced; leaf input { type empty; description "Interface for source-class-usage input"; } leaf output { type empty; description "Interface for source-class-usage output"; } } // container source-class-usage leaf destination-class-usage { type empty; description "Enable destination class usage on this interface"; } } // container accounting leaf mtu { type union { type uint32; type string { pattern "<.*>|$.*"; } } description "Protocol family maximum transmission unit"; } leaf nd6-stale-time { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 18000"; } } units "seconds"; description "Stale time to reconfirm reachability with inet6 neighbour"; } leaf no-neighbor-learn { type empty; description "Disable neighbor address learning on interface"; } container ndp-proxy { description "Enable ndp proxy on interface"; uses apply-advanced; leaf interface-restricted { type empty; description "Enable ndp interface proxy restricted to interface"; } } // container ndp-proxy container dad-proxy { junos:must "(".. ndp-proxy")"; junos:must-message "ndp-proxy must be configured"; description "DAD proxy on interface"; uses apply-advanced; leaf interface-restricted { type empty; description "Enable DAD interface proxy restricted to interface"; } } // container dad-proxy leaf nd6-max-cache { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 2000000"; } } description "Max interface ND nexthop cache size"; } leaf nd6-new-hold-limit { junos:must "(".. nd6-max-cache")"; junos:must-message "Interface max ND cache size must be configured"; type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 2000000"; } } description "Max no. of new unresolved nexthops"; } leaf no-redirects { type empty; description "Do not redirect traffic"; } container filter { description "Packet filtering"; uses apply-advanced; choice input_choice { container input { description "Filter to be applied to received packets"; leaf filter-name { type string; description "Name of the filter"; } leaf shared-name { type string; description "Filter shared-name of instances of interface-shared filter"; } leaf precedence { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Precedence of the filter"; } } // container input leaf-list input-list { type string; ordered-by user; description "List of filter modules applied to received packets "; } } // choice input_choice choice output_choice { container output { description "Filter to be applied to transmitted packets"; leaf filter-name { type string; description "Name of the filter"; } leaf shared-name { type string; description "Filter shared-name of instances of interface-shared filter"; } leaf precedence { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Precedence of the filter"; } } // container output leaf-list output-list { type string; ordered-by user; description "List of filter modules applied to transmitted packets "; } } // choice output_choice container adf { description "Ascend Data Filter definition"; uses apply-advanced; list rule { key "name"; ordered-by user; description "Set of ADF rules"; leaf name { type string; description "Value for a single rule"; } uses apply-advanced; } // list rule leaf counter { type empty; description "Add a counter to each rule"; } leaf input-precedence { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Precedence of the input rules"; } leaf not-mandatory { type empty; description "No errors will be reported if no rules are present"; } leaf output-precedence { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Precedence of the output rules"; } } // container adf leaf group { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 255"; } } description "Group to which interface belongs"; } } // container filter container policer { description "Interface policing"; uses apply-advanced; leaf input { type string; description "Name of policer applied to received packets"; } leaf output { type string; description "Name of policer applied to transmitted packets"; } } // container policer container sampling { junos:must "(("forwarding-options sampling family inet6" || ("forwarding-options packet-capture" || any "forwarding-options sampling instance <*> family inet6")))"; junos:must-message "Requires forwarding-options sampling or packet-capture config"; description "Interface sampling"; uses apply-advanced; leaf input { type empty; description "Sample all packets input on this interface"; } leaf output { type empty; description "Sample all packets output on this interface"; } } // container sampling container tunnel-termination { presence "enable tunnel-termination"; description "Tunnel termination"; } // container tunnel-termination list address { junos:must "(!(".. unnumbered-address"))"; junos:must-message "ipv6 unnumbered-address and ipv6 address must not be defined simultaneously"; key "name"; ordered-by user; description "Interface address or destination prefix"; leaf name { type jt:ipv6prefix; description "Interface address or destination prefix"; } uses apply-advanced; leaf destination { type jt:ipv6addr; description "Destination address"; } leaf eui-64 { type empty; description "Generate EUI-64 interface ID"; } leaf primary { type empty; description "Candidate for primary address in system"; } leaf preferred { type empty; description "Preferred address on interface"; } leaf master-only { type empty; description "Master management IP address for router"; } list ndp { key "name"; ordered-by user; description "Static Neighbor Discovery Protocol entries"; leaf name { type jt:ipv6addr; description "Destination IP address"; } leaf l2-interface { type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Layer 2 interface name for NDP entry"; } choice mac_address_type { leaf mac { type jt:mac-unicast; description "MAC address"; } leaf multicast-mac { type jt:mac-multicast; description "Multicast MAC address"; } } // choice mac_address_type leaf publish { junos:must "((".. mac" || ".. multicast-mac"))"; junos:must-message "either 'mac' or 'multicast-mac' must be configured along with 'publish' statment"; type empty; description "Reply to NDP requests for this entry"; } } // list ndp list vrrp-inet6-group { junos:must "(!(".. eui-64"))"; junos:must-message "'vrrp-inet6-group' is not supported when 'eui-64' is configured"; key "name"; ordered-by user; description "VRRP group"; uses vrrp-group; } // list vrrp-inet6-group leaf virtual-gateway-address { junos:must "(!(".. vrrp-inet6-group"))"; junos:must-message "vrrp configuration incompatible with virtual gateway address"; type jt:ipv6addr; description "Virtual Gateway IP address"; } leaf subnet-router-anycast { type empty; description "Create a subnet roter anycast address for this address."; } } // list address container unnumbered-address { description "Unnumbered interface address/destination prefix"; leaf source { junos:must "("interfaces $$-IFL family inet6 address")"; junos:must-message "referred interface must have address configured under family inet6"; type union { type jt:interface-unit; type string { pattern "<.*>|$.*"; } } description "Interface from which to take local address"; } leaf preferred-source-address { type string; description "Preferred address on the donor interface"; } } // container unnumbered-address choice dad-disable-choice { leaf dad-disable { type empty; description "Disable duplicate-address-detection"; } leaf no-dad-disable { type empty; description "Don't disable duplicate-address-detection"; } } // choice dad-disable-choice leaf destination-udp-port { junos:must "(".. .. .. tunnel encapsulation udp")"; junos:must-message "destination-udp-port can be configured only for encapsulation udp on fti interface"; type union { type string { pattern "<.*>|$.*"; } type uint32 { range "10010 .. 10019"; } } description "Choose destination UDP port number"; } } // container inet6 container mpls { junos:must "(!(".. .. encapsulation frame-relay-ppp"))"; junos:must-message "family mpls is not supported on encapsulation frame-relay-ppp"; presence "enable mpls"; description "MPLS protocol parameters"; uses apply-advanced; leaf mtu { type union { type uint32; type string { pattern "<.*>|$.*"; } } description "Protocol family maximum transmission unit"; } leaf maximum-labels { type union { type string { pattern "<.*>|$.*"; } type uint32; } description "Protocol family maximum number of labels"; } container filter { description "Packet filtering"; uses apply-advanced; choice input_choice { leaf input { type string; description "Name of filter applied to received packets"; } leaf-list input-list { type string; ordered-by user; description "List of filter modules applied to received packets "; } } // choice input_choice leaf-list input-chain { type string; ordered-by user; description "List of filter modules applied to received packets "; } choice output_choice { leaf output { type string; description "Name of filter applied to transmitted packets"; } leaf-list output-list { type string; ordered-by user; description "List of filter modules applied to transmitted packets "; } } // choice output_choice leaf-list output-chain { type string; ordered-by user; description "List of filter modules applied to transmitted packets "; } leaf group { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 255"; } } description "Interface group to which interface belongs"; } } // container filter container ingress-queuing-filter { description "Protocol family ingress-queuing-filter"; leaf filter-name { type string; description "Name of the ingress-queuing-filter"; } } // container ingress-queuing-filter container policer { description "Interface policing"; uses apply-advanced; leaf input { type string; description "Name of policer applied to received packets"; } leaf output { type string; description "Name of policer applied to transmitted packets"; } } // container policer leaf destination-udp-port { junos:must "(".. .. .. tunnel encapsulation udp")"; junos:must-message "destination-udp-port can be configured only for encapsulation udp on fti interface"; type union { type string { pattern "<.*>|$.*"; } type uint32 { range "10020 .. 10029"; } } description "Choose destination UDP port number"; } } // container mpls container mlppp { junos:must "(!("interfaces ${interface} container-options"))"; junos:must-message "mlppp is not supported for container interfaces"; description "Multilink PPP protocol parameters"; uses apply-advanced; leaf bundle { junos:must "((!(".. .. .. dial-options") || "interfaces $$-IFL encapsulation multilink-ppp"))"; junos:must-message "Bundle interface must be configured"; junos:must "((!(".. .. .. pppoe-options") || "interfaces $$-IFL encapsulation multilink-ppp"))"; junos:must-message "Bundle interface must be configured"; type string; description "Logical interface name this link will join"; } choice anchor-points { case case_1 { } // case case_1 case case_2 { } // case case_2 } // choice anchor-points leaf dynamic-profile { junos:must "("dynamic-profiles $$")"; junos:must-message "referenced dynamic-profile must be defined"; type string { length "1 .. 80"; } description " dynamic profile for interface to use"; } } // container mlppp container mlfr-end-to-end { junos:must "(!(".. .. encapsulation frame-relay-ppp"))"; junos:must-message "family mlfr-end-to-end is not supported on encapsulation frame-relay-ppp"; presence "enable mlfr-end-to-end"; description "Multilink Frame Relay end-to-end protocol parameters"; uses apply-advanced; leaf bundle { type union { type jt:interface-unit; type string { pattern "<.*>|$.*"; } } description "Logical interface name this link will join"; } } // container mlfr-end-to-end container mlfr-uni-nni { junos:must "(!(".. .. encapsulation frame-relay-ppp"))"; junos:must-message "family mlfr-uni-uni is not supported on encapsulation frame-relay-ppp"; presence "enable mlfr-uni-nni"; description "Multilink Frame Relay UNI NNI protocol parameters"; uses apply-advanced; leaf bundle { type union { type jt:interface-unit; type string { pattern "<.*>|$.*"; } } description "Logical interface name this link will join"; } } // container mlfr-uni-nni container ccc { junos:must "(!(".. .. encapsulation frame-relay-ppp"))"; junos:must-message "family ccc is not supported on encapsulation frame-relay-ppp"; presence "enable ccc"; description "Circuit cross-connect parameters"; uses apply-advanced; container filter { description "Packet filtering"; uses apply-advanced; choice input_choice { leaf input { type string; description "Name of filter applied to received packets"; } leaf-list input-list { type string; ordered-by user; description "List of filter modules applied to received packets "; } } // choice input_choice leaf-list input-chain { type string; ordered-by user; description "List of filter modules applied to received packets "; } choice output_choice { leaf output { type string; description "Name of filter applied to transmitted packets"; } leaf-list output-list { type string; ordered-by user; description "List of filter modules applied to transmitted packets "; } } // choice output_choice leaf-list output-chain { type string; ordered-by user; description "List of filter modules applied to transmitted packets "; } leaf group { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 255"; } } description "Interface group to which interface belongs"; } } // container filter container policer { description "Interface policing"; uses apply-advanced; leaf input { type string; description "Name of policer applied to received packets"; } leaf output { type string; description "Name of policer applied to transmitted packets"; } } // container policer leaf translate-fecn-and-becn { type empty; description "Translate FECN and BECN bits"; } choice de-or-plp { leaf translate-discard-eligible { type empty; description "Translate DE bit"; } case case_2 { } // case case_2 } // choice de-or-plp leaf keep-address-and-control { type empty; description "Don't strip PPP address and control bytes"; } } // container ccc container tcc { junos:must "(!(".. .. encapsulation frame-relay-ppp"))"; junos:must-message "family tcc is not supported on encapsulation frame-relay-ppp"; presence "enable tcc"; description "Translational cross-connect parameters"; uses apply-advanced; container policer { description "Interface policing"; uses apply-advanced; leaf input { type string; description "Name of policer applied to received packets"; } leaf output { type string; description "Name of policer applied to transmitted packets"; } } // container policer container proxy { presence "enable proxy"; uses apply-advanced; leaf inet-address { type jt:ipv4addr; description "Remote host address on non-Ethernet side of Ethernet TCC"; } } // container proxy container remote { presence "enable remote"; uses apply-advanced; leaf inet-address { type jt:ipv4addr; description "Remote host address on Ethernet side of Ethernet TCC"; } leaf mac-address { type jt:mac-addr; description "Remote host MAC address on Ethernet side of Ethernet TCC"; } } // container remote leaf-list protocols { type enumeration { enum "mpls" { value 0; description "Multiprotocol Label Switching"; } enum "inet" { value 1; description "IP version 4"; } enum "iso" { value 2; description "International Organization for Standardization"; } enum "inet6" { value 3; description "IP version 6"; } } ordered-by user; description "Protocols supported on TCC interface"; } } // container tcc container vpls { presence "enable vpls"; description "Virtual private LAN service parameters"; uses apply-advanced; leaf core-facing { type empty; description "Interface is core facing"; } container filter { description "Packet filtering"; uses apply-advanced; choice input_choice { container input { description "Filter to be applied to received packets"; leaf filter-name { type string; description "Name of the filter"; } leaf shared-name { type string; description "Filter shared-name of instances of interface-shared filter"; } leaf precedence { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Precedence of the filter"; } } // container input leaf-list input-list { type string; ordered-by user; description "List of filter modules applied to received packets "; } } // choice input_choice choice output_choice { container output { description "Filter to be applied to transmitted packets"; leaf filter-name { type string; description "Name of the filter"; } leaf shared-name { type string; description "Filter shared-name of instances of interface-shared filter"; } leaf precedence { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Precedence of the filter"; } } // container output leaf-list output-list { type string; ordered-by user; description "List of filter modules applied to transmitted packets "; } } // choice output_choice container adf { description "Ascend Data Filter definition"; uses apply-advanced; list rule { key "name"; ordered-by user; description "Set of ADF rules"; leaf name { type string; description "Value for a single rule"; } uses apply-advanced; } // list rule leaf counter { type empty; description "Add a counter to each rule"; } leaf input-precedence { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Precedence of the input rules"; } leaf not-mandatory { type empty; description "No errors will be reported if no rules are present"; } leaf output-precedence { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Precedence of the output rules"; } } // container adf leaf group { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 255"; } } description "Group to which interface belongs"; } } // container filter container policer { description "Interface policing"; uses apply-advanced; leaf input { type string; description "Name of policer applied to received packets"; } leaf output { type string; description "Name of policer applied to transmitted packets"; } } // container policer } // container vpls container bridge { junos:must "((!(".. vpls") && (!(".. inet") && (!(".. inet6") && (!(".. ccc") && (!(".. ethernet-switching") && (!(".. iso") && (!(".. llc2") && (!(".. mpls") && (!(".. tcc") && (!(".. pppoe") && !(".. gre"))))))))))))"; junos:must-message "family bridge and rest of the families are mutually exclusive"; presence "enable bridge"; description "Layer-2 bridging parameters"; uses apply-advanced; leaf core-facing { type empty; description "Interface is core facing"; } container filter { description "Packet filtering"; uses apply-advanced; choice input_choice { container input { description "Filter to be applied to received packets"; leaf filter-name { type string; description "Name of the filter"; } leaf shared-name { type string; description "Filter shared-name of instances of interface-shared filter"; } leaf precedence { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Precedence of the filter"; } } // container input leaf-list input-list { type string; ordered-by user; description "List of filter modules applied to received packets "; } } // choice input_choice choice output_choice { container output { description "Filter to be applied to transmitted packets"; leaf filter-name { type string; description "Name of the filter"; } leaf shared-name { type string; description "Filter shared-name of instances of interface-shared filter"; } leaf precedence { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Precedence of the filter"; } } // container output leaf-list output-list { type string; ordered-by user; description "List of filter modules applied to transmitted packets "; } } // choice output_choice container adf { description "Ascend Data Filter definition"; uses apply-advanced; list rule { key "name"; ordered-by user; description "Set of ADF rules"; leaf name { type string; description "Value for a single rule"; } uses apply-advanced; } // list rule leaf counter { type empty; description "Add a counter to each rule"; } leaf input-precedence { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Precedence of the input rules"; } leaf not-mandatory { type empty; description "No errors will be reported if no rules are present"; } leaf output-precedence { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Precedence of the output rules"; } } // container adf leaf group { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 255"; } } description "Group to which interface belongs"; } } // container filter container policer { description "Interface policing"; uses apply-advanced; leaf input { type string; description "Name of policer applied to received packets"; } leaf output { type string; description "Name of policer applied to transmitted packets"; } } // container policer leaf interface-mode { type enumeration { enum "access" { junos:must "((!("interfaces ${interface} vlan-tagging") && (!("interfaces ${interface} flexible-vlan-tagging") && !("interfaces ${interface} stacked-vlan-tagging"))))"; junos:must-message "interface-mode access is allowed only for untagged interfaces"; value 0; description "Interface mode is access"; } enum "trunk" { junos:must "(!("interfaces ${interface} no-native-vlan-insert"))"; junos:must-message "'interface-mode trunk' must not be configured with 'no-native-vlan-insert'"; junos:must "((("protocols mvrp interface ${interface}" || any "routing-instances <*> protocols mvrp interface ${interface}") || (".. vlan-id-list" || (".. isid-list" || (".. inner-vlan-id-list" || (".. vlan members" || ("..inner-vlan members" || (".. vlan-id" || ".. vlan-auto-sense"))))))))"; junos:must-message "'interface-mode trunk' must be defined with either 'vlan-id-list','isid-list', 'inner-vlan-id-list' or the interface must be configured for 'protocols mvrp' or 'vlan-auto-sense'"; value 1; description "Interface mode is trunk"; } } description "Interface mode (access or trunk)"; } leaf vlan-auto-sense { junos:must "(".. interface-mode trunk")"; junos:must-message "vlan-auto-sense can be enabled only on trunk interfaces"; type empty; description "Enable VLAN auto sense on this interface"; } leaf bridge-domain-type { type enumeration { enum "svlan" { junos:must "(".. isid-list all-service-groups")"; junos:must-message "bridge-domain-type svlan is allowed only for isid tagged interfaces"; junos:must "(".. interface-mode trunk")"; junos:must-message "bridge-domain-type svlan is allowed only for trunk interfaces"; value 0; description "Bridge domain type svlan"; } enum "bvlan" { junos:must "(".. isid-list all")"; junos:must-message "bridge-domain-type bvlan is allowed only for isid tagged interfaces"; junos:must "(".. interface-mode trunk")"; junos:must-message "bridge-domain-type bvlan is allowed only for trunk interfaces"; value 1; description "Bridge domain type bvlan"; } } description "Bridge domain type (svlan or bvlan)"; } leaf inter-switch-link { junos:must "(".. interface-mode trunk")"; junos:must-message "'Inter switch link' is supported only under trunk interface mode"; type empty; description "PVLAN inter switch link"; } choice vlan_list { leaf vlan-id { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 4094"; } } description "Access mode and trunk mode VLAN membership"; } leaf-list vlan-id-list { junos:must "((!(".. .. .. vlan-id") && !(".. .. .. vlan-tags")))"; junos:must-message "'vlan-id-list' cannot be used on interface with vlan-id/vlan-tags"; junos:must "(!("interfaces ${interface} stacked-vlan-tagging"))"; junos:must-message "'vlan-id-list' is not supported on stacked-vlan-tagging mode"; junos:must "(".. interface-mode trunk")"; junos:must-message "'vlan-id-list' statement supported only under trunk interface mode"; type jt:vlan-range; description "Trunk mode VLAN membership for this interface"; } leaf-list inner-vlan-id-list { junos:must "((!(".. .. .. vlan-tags inner") && !(".. .. .. vlan-tags inner-range")))"; junos:must-message "'inner-vlan-id-list' cannot be used on interface with vlan-tags inner/inner-range"; junos:must "((".. .. .. vlan-id" || ".. .. .. vlan-tags"))"; junos:must-message "'inner-vlan-id-list' can be used only on interface with vlan-id/vlan-tags"; junos:must "("interfaces ${interface} flexible-vlan-tagging")"; junos:must-message "'inner-vlan-id-list' is supported only on flexible-vlan-tagging mode"; junos:must "(".. interface-mode trunk")"; junos:must-message "'inner-vlan-id-list' statement supported only under trunk interface mode"; type jt:vlan-range; description "Trunk mode VLAN membership for this interface based on inner VLAN tag"; } } // choice vlan_list container vlan-rewrite { junos:must "((".. inner-vlan-id-list" || ".. vlan-id-list"))"; junos:must-message "'vlan-rewrite' statement can be used only with 'vlan-id-list' or inner-vlan-id-list configured"; junos:must "(".. interface-mode trunk")"; junos:must-message "'vlan-rewrite' statement supported only under trunk interface mode"; description "Specify vlan translation"; uses apply-advanced; list translate { key "name"; ordered-by user; description "Translate incoming VLAN tag"; leaf name { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 4094"; } } description "Specify the incoming VLAN tag"; } leaf to-vlan-id { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 4094"; } } description "Specify the bridge-domain VLAN-ID"; } } // list translate } // container vlan-rewrite choice isid_list { leaf isid-list { type enumeration { enum "all-service-groups" { junos:must "(".. interface-mode trunk")"; junos:must-message "'all-service-groups' statement supported only under trunk interface mode"; value 0; description "Map all ISIDs specified under the service-groups"; } enum "all" { junos:must "(".. interface-mode trunk")"; junos:must-message "'all' statement supported only under trunk interface mode"; value 1; description "Map all ISIDs"; } } description "Specify the ISID list"; } } // choice isid_list container recovery-timeout { junos:must "(".. storm-control")"; junos:must-message "Recovery timeout should be configured only with storm-control"; description "Recovery timeout for this interface"; leaf time-in-seconds { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "10 .. 3600"; } } units "seconds"; } } // container recovery-timeout } // container bridge container ethernet-switching { junos:must "((!(".. vpls") && (!(".. inet") && (!(".. inet6") && (!(".. bridge") && (!(".. ccc") && (!(".. iso") && (!(".. llc2") && (!(".. mpls") && (!(".. tcc") && (!(".. pppoe") && !(".. gre"))))))))))))"; junos:must-message "Family ethernet-switching and rest of the families are mutually exclusive"; presence "enable ethernet-switching"; description "Ethernet switching parameters"; uses ethernet-switching-type; } // container ethernet-switching container fibre-channel { presence "enable fibre-channel"; description "Fibre channel switching parameters"; uses fibre-channel-type; } // container fibre-channel container any { presence "enable any"; description "Parameters for 'any' family"; uses apply-advanced; container filter { description "Layer 2 packet filtering"; uses apply-advanced; leaf input { junos:must "(("firewall family any filter $$" || (!("firewall") && ".. .. .. .. .. .. firewall family any filter $$")))"; junos:must-message "referenced filter must be defined under firewall family any"; type string { junos:posix-pattern "!^((__.*)|(.{65,}))$"; junos:pattern-message "Must be a non-reserved string of 64 characters or less"; } description "Name of filter applied to received packets"; } leaf group { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 255"; } } description "Group to which interface belongs"; } } // container filter } // container any uses apply-advanced; } // container family leaf service-domain { type enumeration { enum "inside" { value 0; description "Inside network"; } enum "outside" { value 1; description "Outside network"; } } description "Service domain to which interface belongs"; } leaf copy-tos-to-outer-ip-header { type empty; description "Copy IP payload header's ToS field to GRE delivery header"; } container load-balancing-options { junos:must "(!(".. .. load-balancing-options high-availability-options one-to-one"))"; junos:must-message "load-balancing-options are used when number of active members is more than one"; description "AMS subunit load balancing options"; uses apply-advanced; leaf preferred-active { junos:must "((".. .. .. load-balancing-options member-interface $$" && !(".. .. .. load-balancing-options high-availability-options many-to-one preferred-backup $$")))"; junos:must-message "Active should be one of member-interfaces excluding preferred-backup"; type union { type jt:interface-device; type string { pattern "<.*>|$.*"; } } description "Preferred active Interface name"; } leaf disable-hash { junos:must "(".. .. service-domain")"; junos:must-message "service-domain must be configured if disable-hash is enabled"; junos:must "(!(".. hash-keys"))"; junos:must-message "hash-keys must not be configured if disable-hash is enabled"; type empty; description "Hash based distribution is not needed for this subunit"; } container hash-keys { uses apply-advanced; leaf-list ingress-key { type enumeration { enum "source-ip" { value 0; description "Source Ip Address"; } enum "destination-ip" { value 1; description "Destination Ip Address"; } enum "protocol" { value 2; description "Protocol"; } enum "iif" { value 3; description "Incoming Interface"; } } ordered-by user; description "Hash Key for the ingress direction"; } leaf-list egress-key { type enumeration { enum "source-ip" { value 0; status deprecated; description "Source Ip Address"; } enum "destination-ip" { value 1; status deprecated; description "Destination Ip Address"; } enum "protocol" { value 2; status deprecated; description "Protocol"; } enum "oif" { value 3; status deprecated; description "Outgoing Interface"; } } ordered-by user; status deprecated; description "Hash Key for the egress direction"; } leaf ipv6-source-prefix-length { type enumeration { enum "56" { value 0; description "56 bit IPv6 address prefix"; } enum "64" { value 1; description "64 bit IPv6 address prefix"; } enum "96" { value 2; description "96 bit IPv6 address prefix"; } enum "128" { value 3; description "Complete 128 bit IPv6 address"; } } description "IPv6 source prefix length for hash computation"; } } // container hash-keys } // container load-balancing-options container interface-state { description "IRB interface state computation"; uses apply-advanced; choice state { leaf local-interface { type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "IRB State computation based on loopback AE port state"; } } // choice state container hold-time { description "Delay before marking interface up or down for defect"; uses apply-advanced; leaf up { type union { type uint32; type string { pattern "<.*>|$.*"; } } units "seconds"; description "Delay in seconds before marking IRB interface up"; } leaf down { type union { type uint32; type string { pattern "<.*>|$.*"; } } units "seconds"; description "Delay in seconds before marking IRB interface down"; } } // container hold-time } // container interface-state leaf mac { type jt:mac-unicast; description "Configure logical interface MAC address"; } leaf virtual-gateway-v4-mac { type jt:mac-unicast; description "Configure virtual gateway IPV4 virtual MAC address"; } leaf virtual-gateway-v6-mac { type jt:mac-unicast; description "Configure virtual gateway IPV6 virtual MAC address"; } leaf etree-ac-role { type enumeration { enum "root" { value 0; description "ETREE root interface"; } enum "leaf" { value 1; description "ETREE leaf interface"; } } description "ETREE attachment circuit role"; } } // list unit container no-partition { description "Use channelizable interface as clear channel"; leaf interface-type { type enumeration { enum "e1" { value 0; description "E1 interface"; } enum "t1" { value 1; description "T1 interface"; } enum "at" { value 2; description "ATM interface"; } enum "t3" { value 3; description "T3 interface"; } enum "e3" { value 4; description "E3 interface"; } enum "ct3" { value 5; description "Channelized T3 interface"; } enum "so" { value 6; description "SONET interface"; } enum "cau4" { value 7; description "CAU4 interface"; } } description "Interface type"; } } // container no-partition list partition { junos:must "(!(".. no-partition"))"; junos:must-message "cannot set partitions with no-partition attribute turned on"; key "name"; ordered-by user; description "Channelized interface partition"; leaf name { type string; description "Sublevel interface partition index (for example, 1, 3-4)"; } leaf oc-slice { type string; description "Range of SONET/SDH slices (for example, 1, 7-9)"; } leaf timeslots { type string; description "Timeslots [(1..24) for T1, (1..31) for E1]; for example, 1-3,4,9,22-24 (no spaces)"; } leaf interface-type { type enumeration { enum "ds" { value 0; description "DS0 interface"; } enum "e1" { value 1; description "E1 interface"; } enum "t1" { value 2; description "T1 interface"; } enum "at" { value 3; description "ATM interface"; } enum "ct1" { value 4; description "Channelized T1 interface"; } enum "ce1" { value 5; description "Channelized E1 interface"; } enum "t3" { value 6; description "T3 interface"; } enum "ct3" { value 7; description "Channelized T3 interface"; } enum "e3" { value 8; description "E3 interface"; } enum "so" { value 9; description "SONET interface"; } enum "coc1" { value 10; description "Channelized OC1 interface"; } enum "cau4" { value 11; description "Channelized AU4 interface"; } enum "dc" { junos:must "(any ".. .. partition <*> interface-type bc")"; junos:must-message "BC partition must be defined for PRI"; value 12; description "D channel interface"; } enum "bc" { junos:must "(any ".. .. partition <*> interface-type dc")"; junos:must-message "DC partition must be defined for PRI"; value 13; description "B channel interface"; } } description "Sublevel interface type"; } } // list partition } // list interface-range list interface { key "name"; uses interfaces_type; } // list interface } // container interfaces } // grouping interfaces-group grouping aggregate-load-balance { description "Load balancing parameters"; uses apply-advanced; choice adaptive_option { case case_1 { } // case case_1 leaf no-adaptive { type empty; description "Disable adaptive"; } container adaptive { junos:must "(!("interfaces ${interface} aggregated-ether-options resilient-hash"))"; junos:must-message "load-balance adaptive is incompatible with resilient-hash"; junos:must "(!("interfaces ${interface} aggregated-ether-options link-speed mixed"))"; junos:must-message "load-balance adaptive is incompatible with link-speed mixed"; presence "enable adaptive"; description "Enable adaptive load balancing by re-programming selector table"; uses apply-advanced; leaf tolerance { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 100"; } } units "percent"; description "Target tolerance in percentage (default 20%)"; } leaf pps { type empty; description "Adaptive load balance based on packet per second (default bps)"; } leaf scan-interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 5"; } } description "Scan interval for multiple of 30 seconds (default 30 seconds)"; } } // container adaptive } // choice adaptive_option } // grouping aggregate-load-balance 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 aps_type { uses apply-advanced; choice aps_mode { leaf working-circuit { type string; description "Working circuit group name"; } leaf protect-circuit { type string; description "Protect circuit group name"; } } // choice aps_mode leaf annex-b { junos:must "(!(".. paired-group"))"; junos:must-message "paired-group configuration not supported in annex-b mode"; junos:must "(!(".. exercise"))"; junos:must-message "exercise request not supported in annex-b mode"; junos:must "(!(".. request"))"; junos:must-message "manual request not supported in annex-b mode"; junos:must "(!(".. revert-time"))"; junos:must-message "revert-time not supported in annex-b mode"; junos:must "(!(".. switching-mode unidirectional"))"; junos:must-message "unidirectional mode not supported in annex-b mode"; type empty; description "Annex-b mode"; } leaf wait-to-restore-time { junos:must "(".. annex-b")"; junos:must-message "wait-to-restore-time only supported for annex-b mode"; type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 4294967295"; } } units "seconds"; description "Circuit wait-to-restore time for annex-b"; } leaf preserve-interface { junos:must "(!(".. paired-group"))"; junos:must-message "preserve-interface and paired-group cannot co-exist"; type empty; description "Preserve interface state for fast failover"; } leaf neighbor { type jt:ipv4addr; description "Neighbor address"; } leaf paired-group { type string; description "Name of paired APS group"; } container authentication-key { presence "enable authentication-key"; description "Authentication parameters"; leaf auth_key { type jt:unreadable; description "Authentication key"; } } // container authentication-key leaf switching-mode { type enumeration { enum "bidirectional" { value 0; description "Bidirectional"; } enum "unidirectional" { value 1; description "Unidirectional"; } } description "APS switching mode"; } leaf advertise-interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Advertise interval"; } leaf hold-time { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Hold time"; } leaf revert-time { junos:must "(!(".. switching-mode unidirectional"))"; junos:must-message "revert-time not supported in unidirectional mode"; type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 65534"; } } units "seconds"; description "Circuit revert time"; } choice break-before-make-choice { leaf break-before-make { type empty; description "Ensure only one interface is active at a time"; } leaf no-break-before-make { type empty; description "Don't ensure only one interface is active at a time"; } } // choice break-before-make-choice choice manual_mode { leaf request { type enumeration { enum "protect" { value 0; description "Request protect circuit"; } enum "working" { value 1; description "Request working circuit"; } } description "Request circuit state"; } leaf force { type enumeration { enum "protect" { value 0; description "Force protect circuit"; } enum "working" { value 1; description "Force working circuit"; } } description "Force circuit state"; } leaf lockout { type empty; description "Lockout protection"; } } // choice manual_mode leaf fast-aps-switch { type empty; description "Fast aps switch"; } } // grouping aps_type grouping cos_policer { description "Define a CoS based policer"; leaf name { type string { junos:posix-pattern "^.{1,64}$"; junos:pattern-message "Must be a string of 64 characters or less"; } description "Policer name"; } uses apply-advanced; container premium { presence "enable premium"; description "Policer to apply to premium traffic"; uses ethernet_policer; } // container premium container aggregate { presence "enable aggregate"; description "Policer to apply to aggregate traffic"; uses ethernet_policer; } // container aggregate } // grouping cos_policer grouping cos_policer_input_priority_map { description "Input policer priority map"; uses apply-advanced; container ieee-802.1p { description "Use IEEE 802.1p to determine policer priority map"; uses apply-advanced; leaf-list premium { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 7"; } } ordered-by user; description "Input traffic's IEEE 802.1p value to which premium policer is applied"; } } // container ieee-802.1p } // grouping cos_policer_input_priority_map grouping cos_policer_output_priority_map { description "Output policer priority map"; uses apply-advanced; container classifier { description "Use classifier as policer priority map"; uses apply-advanced; container premium { description "Output traffic classifier to which premium policer is applied"; uses apply-advanced; list forwarding-class { key "name"; ordered-by user; description "Select a classification for this priority map"; leaf name { type string { junos:posix-pattern "^.{1,64}$"; junos:pattern-message "Must be string of 64 characters or less"; } description "Forwarding class name"; } uses apply-advanced; list loss-priority { key "name"; ordered-by user; description "Select a loss priority"; leaf name { type enumeration { enum "low" { value 0; description "Select low loss priority as premium policer"; } enum "high" { value 1; description "Select high loss priority as premium policer"; } } } } // list loss-priority } // list forwarding-class } // container premium } // container classifier } // grouping cos_policer_output_priority_map grouping dcd_rx_bucket_config { uses apply-advanced; leaf overflow { type enumeration { enum "tag" { value 0; description "Tag and count overflow packets"; } enum "discard" { value 1; description "Discard overflow packets"; } } description "Overflow behavior"; } leaf rate { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 100"; } } description "Bucket rate"; } leaf threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 65535"; } } description "Bucket threshold"; } } // grouping dcd_rx_bucket_config grouping dcd_shaping_config { description "Traffic-shaping profile"; uses apply-advanced; choice useless_shaping_choice { container cbr { presence "enable cbr"; description "Constant bandwidth utilization"; leaf cbr-value { type string; description "Constant bandwidth utilization"; } } // container cbr container vbr { description "Variable bandwidth utilization"; leaf peak { type string; description "Peak rate"; } leaf sustained { type string; description "Sustained rate"; } leaf burst { type string; description "Burst size"; } } // container vbr container rtvbr { description "ATM2 real-time variable bandwidth utilization"; leaf peak { type string; description "Peak rate"; } leaf sustained { type string; description "Sustained rate"; } leaf burst { type string; description "Burst size"; } } // container rtvbr } // choice useless_shaping_choice leaf queue-length { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 16383"; } } description "Queue length"; } } // grouping dcd_shaping_config grouping dcd_tx_bucket_config { uses apply-advanced; leaf overflow { type enumeration { enum "discard" { value 0; description "Discard overflow packets"; } } description "Overflow behavior"; } leaf rate { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 100"; } } description "Bucket rate"; } leaf threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 65535"; } } description "Bucket threshold"; } } // grouping dcd_tx_bucket_config grouping epd_threshold_config { uses apply-advanced; leaf epd-threshold-plp0 { type string; units "cells"; description "Early packet discard threshold value"; } leaf plp1 { type string; units "cells"; description "Early packet drop threshold value for PLP 1"; } } // grouping epd_threshold_config grouping ethernet-switching-type { description "Ethernet switching family"; uses apply-advanced; leaf port-mode { type enumeration { enum "access" { value 0; description "Interface mode is access"; } enum "tagged-access" { value 1; description "Interface mode is tagged-access"; } enum "trunk" { value 2; description "Interface mode is trunk"; } } description "Type of port mode"; } leaf interface-mode { type enumeration { enum "access" { junos:must "((!("interfaces ${interface} vlan-tagging") && (!("interfaces ${interface} flexible-vlan-tagging") && (!("interfaces ${interface} stacked-vlan-tagging") && !("interfaces ${interface} encapsulation extended-vlan-bridge")))))"; junos:must-message "interface-mode access is allowed only for untagged interfaces, also not allowed with flexible-vlan-tagging and extended-vlan-bridge"; value 0; description "Interface mode is access"; } enum "trunk" { junos:must "((!(("protocols dot1x authenticator interface ${interface}.${unit}" || "protocols dot1x supplicant interface ${interface}.${unit}")) || ("interfaces ${interface} native-vlan-id" && !("interfaces ${interface} flexible-vlan-tagging"))))"; junos:must-message "Must configure native-vlan-id but no flexible-vlan-tagging for dot1x enabled port"; value 1; description "Interface mode is trunk"; } } default "access"; description "Type of interface mode"; } leaf inter-switch-link { junos:must "(".. interface-mode trunk")"; junos:must-message "'Inter switch link' is supported only under trunk interface mode"; type empty; description "PVLAN inter switch link"; } leaf reflective-relay { junos:must "(".. port-mode tagged-access")"; junos:must-message "Reflective relay is supported only on tagged-access port"; type empty; description "Reflective-relay mode for this interface"; } choice vlan_choice_list { container vlan { description "Virtual LAN parameters"; uses apply-advanced; leaf-list members { type string; ordered-by user; description "Membership for this interface (name or id)"; } } // container vlan container inner-vlan { description "Trunk mode vlan membership for this interface"; uses apply-advanced; leaf-list members { type string; ordered-by user; description "Membership for this interface (name or id)"; } } // container inner-vlan leaf-list inner-vlan-id-list { junos:must "((!(".. .. .. vlan-tags inner") && !(".. .. .. vlan-tags inner-range")))"; junos:must-message "'inner-vlan-id-list' cannot be used on interface with vlan-tags inner or inner-range configured"; junos:must "((".. .. .. vlan-id" || ".. .. .. vlan-tags"))"; junos:must-message "'inner-vlan-id-list' can be used only on interface with vlan-id/vlan-tags"; junos:must "("interfaces ${interface} flexible-vlan-tagging")"; junos:must-message "'inner-vlan-id-list' is supported only on flexible-vlan-tagging mode"; junos:must "(".. interface-mode trunk")"; junos:must-message "'inner-vlan-id-list' statement supported only under trunk interface mode"; type jt:vlan-range; description "Trunk mode VLAN membership for this interface based on inner VLAN tag"; } } // choice vlan_choice_list leaf vlan-auto-sense { junos:must "(".. interface-mode trunk")"; junos:must-message "vlan-auto-sense can be enabled only on trunk ports"; type empty; description "Enable VLAN auto sense on this interface"; } leaf bridge-domain-type { type enumeration { enum "svlan" { junos:must "(".. isid-list all-service-groups")"; junos:must-message "bridge-domain-type SVLAN is allowed only for ISID tagged interfaces"; junos:must "(".. interface-mode trunk")"; junos:must-message "bridge-domain-type SVLAN is allowed only for trunk interfaces"; value 0; description "Bridge domain type SVLAN"; } enum "bvlan" { junos:must "(".. isid-list all")"; junos:must-message "bridge-domain-type BVLAN is allowed only for ISID tagged interfaces"; junos:must "(".. interface-mode trunk")"; junos:must-message "bridge-domain-type BVLAN is allowed only for trunk interfaces"; value 1; description "Bridge domain type BVLAN"; } } description "Bridge domain type"; } container vlan-rewrite { junos:must "((".. inner-vlan-id-list" || ".. vlan members"))"; junos:must-message "'vlan-rewrite' statement can be used only with 'vlan members' or inner-vlan-id-list configured"; junos:must "(".. interface-mode trunk")"; junos:must-message "'vlan-rewrite' statement supported only under trunk interface mode"; description "Specify VLAN translation"; uses apply-advanced; list translate { key "name"; ordered-by user; description "Translate incoming VLAN tag"; leaf name { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 4094"; } } description "Specify the incoming VLAN tag"; } leaf to-vlan-id { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 4094"; } } description "Specify the bridge-domain VLAN-ID"; } } // list translate } // container vlan-rewrite leaf native-vlan-id { type string; description "Untagged packets on a trunk/tagged-access interface belong to this vlan"; } choice isid_list { leaf isid-list { type enumeration { enum "all-service-groups" { junos:must "(".. interface-mode trunk")"; junos:must-message "'all-service-groups' statement supported only under trunk interface mode"; value 0; description "Map all ISIDs specified under the service-groups"; } enum "all" { junos:must "(".. interface-mode trunk")"; junos:must-message "'all' statement supported only under trunk interface mode"; value 1; description "Map all ISIDs"; } } description "Specify the ISID list"; } } // choice isid_list leaf core-facing { type empty; description "Interface is core facing"; } container filter { description "Packet filtering"; uses apply-advanced; leaf input { type string; description "Name of filter applied to received packets"; } leaf input-precedence { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Precedence of the filter"; } leaf-list input-list { type string; ordered-by user; description "List of filter modules applied to received packets "; } leaf output { type string; description "Name of filter applied to transmitted packets"; } leaf output-precedence { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Precedence of the filter"; } leaf-list output-list { type string; ordered-by user; description "List of filter modules applied to transmitted packets "; } container adf { description "Ascend Data Filter definition"; uses apply-advanced; list rule { key "name"; ordered-by user; description "Set of ADF rules"; leaf name { type string; description "Value for a single rule"; } uses apply-advanced; } // list rule leaf counter { type empty; description "Add a counter to each rule"; } leaf input-precedence { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Precedence of the input rules"; } leaf not-mandatory { type empty; description "No errors will be reported if no rules are present"; } leaf output-precedence { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Precedence of the output rules"; } } // container adf leaf group { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 255"; } } description "Group to which interface belongs"; } } // container filter container storm-control { description "Storm control profile name to bind"; uses apply-advanced; leaf profile-name { junos:must "("forwarding-options storm-control-profiles $$")"; junos:must-message "Storm profile name must be defined in the [edit forwarding-options storm-control-profiles] hierarchy"; type string; description "Profile name"; } } // container storm-control container recovery-timeout { description "Recovery timeout for this interface"; leaf time-in-seconds { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "10 .. 3600"; } } units "seconds"; } } // container recovery-timeout } // grouping ethernet-switching-type grouping ethernet_policer { description "Define a policer"; uses apply-advanced; choice bandwidth { leaf bandwidth-limit { type string; units "bits per second"; description "Bandwidth limit"; } } // choice bandwidth leaf burst-size-limit { type string; units "bytes"; description "Burst size limit"; } } // grouping ethernet_policer grouping ett-attributes { description "Transport ethernet configuration attributes"; uses apply-advanced; leaf rate { type enumeration { enum "100ge" { value 0; description "100 gigabit ethernet"; } } description "Ethernet client signal rate"; } } // grouping ett-attributes grouping fibre-channel-type { description "Fibre Channel switching family"; uses apply-advanced; leaf port-mode { type enumeration { enum "f-port" { value 0; description "Fabric port"; } enum "e-port" { value 1; description "Inter-switch port"; } enum "np-port" { value 2; description "Proxy node port"; } enum "auto" { value 3; description "Interface mode (F/E) is determined at runtime"; } } description "Port mode"; } leaf no-npiv { junos:must "((".. port-mode f-port" || (".. port-mode auto" || !(".. port-mode"))))"; junos:must-message "Interface must be f-port or auto to disable NPIV"; type empty; description "Disable NPIV"; } container fc-fabric { description "Virtual fabric parameters"; uses apply-advanced; leaf-list members { type string; ordered-by user; description "Virtual Fabric Membership for this interface (name or id)"; } } // container fc-fabric leaf native-fabric { type string { junos:posix-pattern "^([[:alpha:]][[:alnum:]_.-]+)|^([1-9][0-9]{0,2}|[1-3][0-9]{3}|40[0-8][0-9]|409[0-4])$"; junos:pattern-message "Must be a valid FC fabric name or ID"; } description "FC frames with no virtual fabric header on a interface belong to this fabric"; } } // grouping fibre-channel-type grouping interfaces_type { description "Physical interface"; leaf name { junos:must "(!(".. es-options backup-interface $$"))"; junos:must-message "Primary and backup ES PIC interfaces must be different"; type string; } uses apply-advanced; leaf description { type string; description "Text description of interface"; } leaf external-model-name { type string; description "Name for interface as configured using 3rd-party model"; } leaf metadata { type string; description "Text metadata attached to interface"; } choice enable-disable { leaf disable { type empty; description "Disable this interface"; } } // choice enable-disable container fabric-options { description "Fabric interface specific options"; uses apply-advanced; list member-interfaces { key "name"; description "Member interface for the fabric interface"; leaf name { junos:must "(!(("interfaces $$ flexible-vlan-tagging" || ("interfaces $$ stacked-vlan-tagging" || ("interfaces $$ vlan-vci-tagging" || "interfaces $$ vlan-tagging")))))"; junos:must-message "VLAN configuration is not allowed on fabric member"; junos:must "(!("interfaces $$ disable"))"; junos:must-message "fabric member device disable setting is not allowed"; junos:must "(!("interfaces $$ encapsulation"))"; junos:must-message "fabric member device encapsulation is not allowed"; junos:must "(!("interfaces $$ mac"))"; junos:must-message "fabric member device mac address setting is not allowed"; junos:must "(!("interfaces $$ mtu"))"; junos:must-message "fabric member device mtu setting and vlan-tagging is not allowed"; junos:must "(!("interfaces $$ passive-monitor-mode"))"; junos:must-message "Fabric member cannot be configured in passive monitor mode"; junos:must "(!("interfaces $$ gigether-options 802.3ad"))"; junos:must-message "Fabric member cannot be part of aggregated ethernet"; junos:must "(!("interfaces $$ gigether-options redundant-parent"))"; junos:must-message "Fabric member cannot be part of redundant ethernet"; junos:must "(!("interfaces $$ unit"))"; junos:must-message "Logical unit is not allowed on fabric member"; junos:must "(!("system autoinstallation"))"; junos:must-message "incompatible with 'system autoinstallation'"; type union { type jt:interface-device; type string { pattern "<.*>|$.*"; } } description "Interface name of member"; } uses apply-advanced; } // list member-interfaces container remote-chassis { presence "enable remote-chassis"; description "Remote chassis reachability"; uses apply-advanced; leaf destination { type jt:ipv4addr; description "Destination IP address to reach remote chassis"; } } // container remote-chassis } // container fabric-options container traceoptions { presence "enable traceoptions"; description "Interface trace options"; uses apply-advanced; list flag { key "name"; ordered-by user; description "Tracing parameters"; leaf name { type enumeration { enum "ipc" { value 0; description "Trace interface IPC messages"; } enum "event" { value 1; description "Trace interface events"; } enum "media" { value 2; description "Trace interface media changes"; } enum "all" { value 3; description "Enable all interface trace flags"; } } } } // list flag } // container traceoptions leaf passive-monitor-mode { junos:must "(!(("services nat ipv6-multicast-interfaces $$={all}" || "services nat ipv6-multicast-interfaces ${interface}")))"; junos:must-message "Can not configure 'services nat ipv6-multicast-interfaces' when passive montioring is enabled for the interface"; junos:must "(!((".. encapsulation ethernet-ccc" || (".. encapsulation ethernet-tcc" || (".. encapsulation ethernet-bridge" || (".. encapsulation ethernet-vpls" || (".. encapsulation extended-vlan-ccc" || (".. encapsulation extended-vlan-tcc" || (".. encapsulation extended-vlan-vpls" || (".. encapsulation extended-vlan-bridge" || (".. encapsulation flexible-ethernet-services" || (".. encapsulation vlan-ccc" || (".. encapsulation vlan-vci-ccc" || ".. encapsulation vlan-vpls")))))))))))))"; junos:must-message "Not compatible with specified 'encapsulation`"; type empty; description "Use interface to tap packets from another router"; } choice keepalive_choices { container keepalives { presence "enable keepalives"; description "Send or demand keepalive messages"; uses keepalives_type; } // container keepalives leaf no-keepalives { type empty; description "Do not send keepalive messages"; } } // choice keepalive_choices choice traps-choice { leaf traps { type empty; description "Enable SNMP notifications on state changes"; } leaf no-traps { type empty; description "Don't enable SNMP notifications on state changes"; } } // choice traps-choice choice interface-mib-choice { leaf interface-mib { type empty; description "Enable interface-related MIBs"; } leaf no-interface-mib { type empty; description "Don't enable interface-related MIBs"; } } // choice interface-mib-choice leaf accounting-profile { junos:must "(("accounting-options interface-profile $$" || "accounting-options flat-file-profile $$"))"; junos:must-message "referenced accounting profile must be defined"; type string; description "Accounting profile name"; } choice scheduler_type { choice per-unit-scheduler-choice { leaf per-unit-scheduler { type empty; description "Enable subunit queuing on Frame Relay or VLAN IQ interface"; } leaf no-per-unit-scheduler { type empty; description "Don't enable subunit queuing on Frame Relay or VLAN IQ interface"; } } // choice per-unit-scheduler-choice leaf shared-scheduler { junos:must "((".. vlan-tagging" || (".. stacked-vlan-tagging" || (".. flexible-vlan-tagging" || ".. vlan-vci-tagging"))))"; junos:must-message "vlan tagging needs to be enabled for shared scheduler"; type empty; description "Enabled shared queuing on an IQ2 interface"; } container hierarchical-scheduler { presence "enable hierarchical-scheduler"; description "Enable hierarchical scheduling"; leaf maximum-hierarchy-levels { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "2 .. 4"; } } description "Maximum hierarchy levels"; } leaf implicit-hierarchy { type empty; description "Implicit hierarchy (follows interface hierarchy)"; } } // container hierarchical-scheduler } // choice scheduler_type leaf l2tp-maximum-session { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 64000"; } } description "Maximum L2TP session"; } leaf schedulers { type union { type uint32; type string { pattern "<.*>|$.*"; } } description "Number of schedulers to allocate for interface"; } leaf cascade-port { junos:must "(!(any "logical-systems <*> interfaces ${interface}"))"; junos:must-message "cascade-port cannot be part of logical-systems config"; junos:must "(!(".. flexible-vlan-tagging"))"; junos:must-message "cascade-port cannot have flexible-vlan-tagging config"; junos:must "(!(".. stacked-vlan-tagging"))"; junos:must-message "cascade-port cannot have stacked-vlan-tagging config"; junos:must "(!(".. vlan-tagging"))"; junos:must-message "cascade-port cannot have vlan-tagging config"; junos:must "("chassis satellite-management")"; junos:must-message "chassis satellite-management must be defined"; type empty; description "Cascade port"; } leaf dce { type empty; description "Respond to Frame Relay status enquiry messages"; } choice vlan_tag_mode { leaf vlan-tagging { junos:must "(!(("protocols dot1x authenticator interface ${interface}.0" || "protocols dot1x supplicant interface ${interface}.0")))"; junos:must-message "Dot1x is not supported on vlan-tagged interface"; type empty; description "802.1q VLAN tagging support"; } leaf stacked-vlan-tagging { junos:must "(!(("protocols dot1x authenticator interface ${interface}.0" || "protocols dot1x supplicant interface ${interface}.0")))"; junos:must-message "Dot1x is not supported on vlan-tagged interface"; junos:must "(!((".. passive-monitor-mode" || ".. 802.3ad")))"; junos:must-message "Not compatible with passive-monitor-mode statement"; type empty; description "Stacked 802.1q VLAN tagging support"; } leaf flexible-vlan-tagging { junos:must "(!(("protocols dot1x authenticator interface ${interface}.0" || "protocols dot1x supplicant interface ${interface}.0")))"; junos:must-message "Dot1x is not supported on vlan-tagged interface"; type empty; description "Support for no tagging, or single and double 802.1q VLAN tagging"; } leaf vlan-vci-tagging { type empty; description "CCC for VLAN Q-in-Q and ATM VPI/VCI interworking"; } } // choice vlan_tag_mode leaf native-vlan-id { junos:must "((".. flexible-vlan-tagging" || (".. unit $$={0} family bridge interface-mode trunk" || (".. unit $$={0} family ethernet-switching interface-mode trunk" || (any "logical-systems <*> interfaces ${interface} unit <*> family bridge interface-mode trunk" || any "logical-systems <*> interfaces ${interface} unit <*> family ethernet-switching interface-mode trunk")))))"; junos:must-message "native-vlan-id can be specified with flexible-vlan-tagging mode or with interface-mode trunk"; type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 4094"; } } description "Virtual LAN identifier for untagged frames"; } leaf input-native-vlan-push { junos:must "(any "interfaces ${interface} unit <*> input-vlan-map push ")"; junos:must-message "input-native-vlan-push can be set only when input-vlan-map push is configured"; type enumeration { enum "disable" { value 0; description "Disable input-native-vlan-push"; } enum "enable" { value 1; description "Enable input-native-vlan-push"; } } default "enable"; description "Control native-vlan-id insertion to untagged frames when input-vlan-map push is configured"; } leaf number-of-sub-ports { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 8"; } } description "Number of channels to create for a port"; } leaf unused { type empty; description "Disable physical port"; } leaf speed { type enumeration { enum "auto" { junos:must "((!("interfaces ${interface} gigether-options 802.3ad") || !("interfaces ${interface} ether-options 802.3ad")))"; junos:must-message "Auto speed cannot be configured for an aggregated ethernet member link"; junos:must "(("interfaces ${interface} gigether-options auto-negotiation" || "interfaces ${interface} ether-options auto-negotiation"))"; junos:must-message "gigether-options/ether-options auto-negotiation must be enabled"; value 0; description "Enable auto negotiation of interface speed"; } enum "auto-10m-100m" { junos:must "((!("interfaces ${interface} gigether-options 802.3ad") || !("interfaces ${interface} ether-options 802.3ad")))"; junos:must-message "Auto speed cannot be configured for an aggregated ethernet member link"; junos:must "(("interfaces ${interface} gigether-options auto-negotiation" || "interfaces ${interface} ether-options auto-negotiation"))"; junos:must-message "gigether-options/ether-options auto-negotiation must be enabled"; value 1; description "Enable auto negotiation of limiting interface speed to 10m/100m"; } enum "10m" { value 2; } enum "100m" { value 3; } enum "1g" { value 4; } enum "2.5g" { value 5; } enum "5g" { value 6; } enum "10g" { value 7; } enum "25g" { value 8; } enum "40g" { value 9; } enum "50g" { value 10; } enum "100g" { value 11; } enum "200g" { value 12; } enum "400g" { value 13; } enum "oc3" { value 14; } enum "oc12" { value 15; } enum "oc48" { value 16; } } description "Link speed"; } leaf mtu { junos:must "(!("interfaces ${interface} container-options container-list"))"; junos:must-message "mtu is not supported for container child interfaces"; type union { type string { pattern "<.*>|$.*"; } type uint32; } description "Maximum transmit packet size"; } container hold-time { description "Hold time for link up and link down"; leaf up { type union { type uint32; type string { pattern "<.*>|$.*"; } } units "milliseconds"; description "Link up hold time"; } leaf down { type union { type uint32; type string { pattern "<.*>|$.*"; } } units "milliseconds"; description "Link down hold time"; } } // container hold-time container damping { description "Interface damping parameters"; uses apply-advanced; leaf half-life { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 30"; } } units "seconds"; default "5"; description "Damping half life time"; } leaf max-suppress { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 20000"; } } units "seconds"; default "20"; description "Maximum suppress time"; } leaf reuse { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 20000"; } } default "1000"; description "Reuse threshold"; } leaf suppress { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 20000"; } } default "2000"; description "Suppress threshold"; } leaf enable { type empty; description "Enable interface damping"; } } // container damping container link-degrade-monitor { presence "enable link-degrade-monitor"; description "Enable link degrade monitoring"; uses apply-advanced; choice enable_choice { leaf link-degrade-monitor-enable { type empty; description "Enable Link Degrade Monitoring"; } leaf no-link-degrade-monitor-enable { type empty; description "Disable Link Degrade Monitoring"; } } // choice enable_choice container actions { description "Action upon link degrade event"; uses apply-advanced; choice action_choice { leaf media-based { type empty; description "Media based"; } } // choice action_choice } // container actions container recovery { description "Link degrade recovery mechanism"; uses apply-advanced; leaf timer { junos:must "(!(".. manual"))"; junos:must-message "Recovery mechanism must be auto to configure recovery timer"; type union { type uint32; type string { pattern "<.*>|$.*"; } } default "1800"; description "Auto recovery timer in seconds"; } choice receovery_choice { leaf auto { type empty; description "Automatic recovery"; } leaf manual { type empty; description "Manual recovery"; } } // choice receovery_choice } // container recovery container thresholds { description "Link degrade threshold parameters"; uses apply-advanced; leaf set { type string { junos:posix-pattern "^1e-(1[0-6]?|[2-9])$"; junos:pattern-message "Ber threshold value in format: 1e-n, n = 1..16"; } default "1e-7"; description "BER at which link considered degraded(1..16)"; } leaf clear { type string { junos:posix-pattern "^1e-(1[0-6]?|[2-9])$"; junos:pattern-message "Ber threshold value in format: 1e-n, n = 1..16"; } default "1e-12"; description "BER at which link considered improved(1..16)"; } leaf warning-set { type string { junos:posix-pattern "^1e-(1[0-6]?|[2-9])$"; junos:pattern-message "Ber threshold value in format: 1e-n, n = 1..16"; } default "1e-9"; description "BER at which link degrade warning raised(1..16)"; } leaf warning-clear { type string { junos:posix-pattern "^1e-(1[0-6]?|[2-9])$"; junos:pattern-message "Ber threshold value in format: 1e-n, n = 1..16"; } default "1e-11"; description "BER at which link degrade warning cleared(1..16)"; } leaf interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 256"; } } default "10"; description "Consecutive link degrade events"; } } // container thresholds } // container link-degrade-monitor container satop-options { junos:must "((!(".. t1-options framing") && !(".. e1-options framing")))"; junos:must-message "SAToP & Framing cannot be configured on same interface"; junos:must "(!(".. ima-link-options"))"; junos:must-message "SAToP & IMA cannot be configured on same interface"; junos:must "((!("interfaces ${interface} container-options") || ("interfaces ${interface} container-options container-type" || "interfaces ${interface} container-options allow-configuration-override")))"; junos:must-message "satop-options cannot be configured without allow-configuration-override"; description "Structure-Agnostic TDM over Packet protocol options"; uses apply-advanced; leaf idle-pattern { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "An 8-bit hexadecimal pattern to replace TDM data in a lost packet"; } leaf payload-size { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "64 .. 1024"; } } description "Number of payload bytes per packet"; } container excessive-packet-loss-rate { description "Packet loss options"; uses apply-advanced; leaf threshold { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "1 .. 100"; } } description "Percentile designating the threshold of excessive packet loss rate"; } leaf sample-period { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1000 .. 65535"; } } description "Number of milliseconds over which excessive packet loss rate is calculated"; } } // container excessive-packet-loss-rate choice jitter-buffer-size { leaf jitter-buffer-packets { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 64"; } } description "Number of packets in jitter buffer before packet data is played out in the line"; } leaf jitter-buffer-latency { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 1000"; } } units "milliseconds"; description "Number of milliseconds delay in jitter buffer before packet data is played out in the line"; } leaf jitter-buffer-auto-adjust { type empty; description "Automatically adjust jitter buffer"; } } // choice jitter-buffer-size leaf bit-rate { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 10240"; } } description "In multiples of DS0"; } } // container satop-options container cesopsn-options { junos:must "((!("interfaces ${interface} container-options") || ("interfaces ${interface} container-options container-type" || "interfaces ${interface} container-options allow-configuration-override")))"; junos:must-message "cesopsn-options cannot be configured without allow-configuration-override"; description "Structure-Aware TDM over Packet protocol options"; uses apply-advanced; leaf idle-pattern { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "An 8-bit hexadecimal pattern to replace TDM data in a lost packet"; } leaf packetization-latency { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1000 .. 8000"; } } units "microseconds"; description "Number of microseconds to create packets"; } leaf payload-size { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "64 .. 1024"; } } description "Number of payload bytes per packet"; } container excessive-packet-loss-rate { description "Packet loss options"; uses apply-advanced; leaf threshold { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "1 .. 100"; } } description "Percentile designating the threshold of excessive packet loss rate"; } leaf sample-period { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1000 .. 65535"; } } description "Number of milliseconds over which excessive packet loss rate is calculated"; } } // container excessive-packet-loss-rate choice jitter-buffer-size { leaf jitter-buffer-packets { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 64"; } } description "Number of packets in jitter buffer before packet data is played out in the line"; } leaf jitter-buffer-latency { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 1000"; } } units "milliseconds"; description "Number of milliseconds delay in jitter buffer before packet data is played out in the line"; } leaf jitter-buffer-auto-adjust { type empty; description "Automatically adjust jitter buffer"; } } // choice jitter-buffer-size leaf bit-rate { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 10240"; } } description "In multiples of DS0"; } } // container cesopsn-options container clocking { description "Interface clock source"; choice clocking_choices { leaf internal { type empty; description "Clocking provided by local system"; } container external { presence "enable external"; description "Clocking provided by DCE (loop timing)"; } // container external } // choice clocking_choices } // container clocking leaf link-mode { type enumeration { enum "automatic" { value 0; description "Automatically negotiate duplex"; } enum "half-duplex" { value 1; description "Half-duplex operation"; } enum "full-duplex" { value 2; description "Full-duplex operation"; } } description "Link operational mode"; } leaf encapsulation { junos:must "(!("interfaces ${interface} container-options container-list"))"; junos:must-message "encapsulation is not supported for container child interfaces"; type enumeration { enum "ethernet" { value 0; description "Ethernet physical media"; } enum "fddi" { value 1; description "FDDI physical media"; } enum "token-ring" { value 2; description "Token Ring physical media"; } enum "ppp" { value 3; description "Serial PPP device"; } enum "ppp-ccc" { value 4; description "Serial PPP device for a cross-connect"; } enum "ppp-tcc" { value 5; description "Serial PPP device for a translational cross-connect"; } enum "ether-vpls-ppp" { value 6; description "Ethernet VPLS over PPP (bridging) device"; } enum "frame-relay" { value 7; description "Frame Relay encapsulation"; } enum "frame-relay-ccc" { value 8; description "Frame Relay for cross-connect"; } enum "frame-relay-tcc" { value 9; description "Frame Relay for translational cross-connect"; } enum "extended-frame-relay-ccc" { value 10; description "Any Frame Relay DLCI for cross-connect"; } enum "extended-frame-relay-tcc" { value 11; description "Any Frame Relay DLCI for translational cross-connect"; } enum "flexible-frame-relay" { value 12; description "Multiple Frame Relay encapsulations"; } enum "frame-relay-port-ccc" { value 13; description "Frame Relay port encapsulation for a cross-connect"; } enum "frame-relay-ether-type" { value 14; description "Cisco-compatible Frame Relay encapsulation"; } enum "frame-relay-ether-type-tcc" { value 15; description "Cisco-compatible Frame Relay encapsulation for translational cross-connect"; } enum "extended-frame-relay-ether-type-tcc" { value 16; description "Cisco-compatible Frame Relay encapsulation any DLCI for translational cross-connect"; } enum "cisco-hdlc" { value 17; description "Cisco-compatible HDLC framing"; } enum "cisco-hdlc-ccc" { value 18; description "Cisco-compatible HDLC framing for a cross-connect"; } enum "cisco-hdlc-tcc" { value 19; description "Cisco-compatible HDLC framing for a translational cross-connect"; } enum "vlan-ccc" { value 20; description "802.1q tagging for a cross-connect"; } enum "extended-vlan-ccc" { value 21; description "Nonstandard TPID tagging for a cross-connect"; } enum "ethernet-ccc" { value 22; description "Ethernet cross-connect"; } enum "flexible-ethernet-services" { value 23; description "Allows per-unit Ethernet encapsulation configuration"; } enum "smds-dxi" { value 24; description "SMDS DXI framing"; } enum "atm-pvc" { value 25; description "ATM permanent virtual circuits"; } enum "atm-ccc-cell-relay" { value 26; description "ATM cell relay encapsulation for cross-connect"; } enum "ethernet-over-atm" { value 27; description "Ethernet over ATM encapsulation"; } enum "ethernet-tcc" { value 28; description "Ethernet translational cross-connect"; } enum "extended-vlan-tcc" { value 29; description "802.1q tagging for a translational cross-connect"; } enum "multilink-frame-relay-uni-nni" { value 30; description "Multilink Frame Relay UNI NNI (FRF.16) encapsulation"; } enum "satop" { junos:must "((!(".. t1-options framing") && !(".. e1-options framing")))"; junos:must-message "SAToP & Framing cannot be configured on same interface"; junos:must "(!(".. ima-link-options"))"; junos:must-message "SAToP & IMA cannot be configured on same interface"; value 31; description "Structure-Agnostic TDM over Packet encapsulation"; } enum "cesopsn" { value 32; description "Structure-Agnostic TDM over Packet encapsulation"; } enum "ima" { junos:must "(!(".. satop-options"))"; junos:must-message "SAToP & IMA cannot be configured on same interface"; value 33; description "Inverse Multiplexing for ATM"; } enum "ethernet-vpls" { value 34; description "Ethernet virtual private LAN service"; } enum "ethernet-bridge" { value 35; description "Ethernet layer-2 bridging"; } enum "vlan-vpls" { value 36; description "VLAN virtual private LAN service"; } enum "vlan-vci-ccc" { junos:must "("interfaces ${interface} vlan-vci-tagging")"; junos:must-message "valid only with vlan-vci-tagging mode"; value 37; description "CCC for VLAN Q-in-Q and ATM VPI/VCI interworking"; } enum "extended-vlan-vpls" { value 38; description "Extended VLAN virtual private LAN service"; } enum "extended-vlan-bridge" { value 39; description "VLAN layer-2 bridging"; } enum "multilink-ppp" { value 40; description "Multilink PPP"; } enum "generic-services" { value 41; description "Generic services"; } } description "Physical link-layer encapsulation"; } container esi { description "ESI configuration of multi-homed interface"; uses apply-advanced; container auto-derive { description "Auto-derive ESI value for the interface"; uses apply-advanced; choice esitype { leaf lacp { type empty; description "Auto-derive ESI from lacp"; } } // choice esitype } // container auto-derive leaf identifier { junos:must "(!(".. .. gigether-options 802.3ad"))"; junos:must-message "ESI cannot be configured for member link interfaces"; junos:must "(!(any "interfaces <*> unit <*> esi $$"))"; junos:must-message "ESI value must be unique across all IFDs and IFLs"; junos:must "(unique "interfaces <*> esi $$")"; junos:must-message "ESI value must be unique across all IFDs and IFLs"; junos:must "(!("interfaces ${interface} esi auto-derive"))"; junos:must-message "ESI identifier can not be configured when auto-derive is configured under IFD"; type jt:esi; description "ESI value for the interface"; } choice mode { leaf single-active { type empty; description "Single-active mode"; } leaf all-active { type empty; description "All-active mode"; } } // choice mode container df-election-granularity { presence "enable df-election-granularity"; description "DF Election Granularity Selection "; uses apply-advanced; choice mode { container per-esi { presence "enable per-esi"; description "DF Election Granularity Per Esi"; uses apply-advanced; leaf lacp-oos-on-ndf { junos:must "(!("interfaces ${interface} esi all-active"))"; junos:must-message "lacp-oos-on-ndf can be configured only with single-active"; junos:must "("interfaces ${interface} aggregated-ether-options lacp")"; junos:must-message "LACP must be enbled for lacp-oos-on-ndf"; type empty; description "Lacp Oos"; } } // container per-esi leaf per-esi-vlan { type empty; description "Per Esi Vlan"; } } // choice mode } // container df-election-granularity container df-election-type { presence "enable df-election-type"; description "DF Election Type"; uses apply-advanced; choice pref_choice { container preference { presence "enable preference"; description "Preference based DF election"; uses apply-advanced; leaf value { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 65535"; } } default "32767"; description "Preference value for EVPN Multihoming DF election"; } } // container preference } // choice pref_choice choice mod_choice { container mod { junos:must "(!(".. preference"))"; junos:must-message "preference must not be configured"; presence "enable mod"; description "MOD based DF election"; } // container mod } // choice mod_choice } // container df-election-type leaf source-bmac { junos:must "(!(any "routing-instances <*> service-groups <*> pbb-service-options source-bmac $$"))"; junos:must-message "Source B-MAC must be unique across all routing-instances"; junos:must "(!(any "interfaces <*> unit <*> esi source-bmac $$"))"; junos:must-message "Source B-MAC must be unique under all IFDs and IFLs"; junos:must "(unique "interfaces <*> esi source-bmac $$")"; junos:must-message "Source B-MAC must be unique under all IFDs and IFLs"; type jt:mac-unicast; description "Unicast Source B-MAC address per ESI for PBB-EVPN"; } } // container esi container framing { description "Frame type"; uses apply-advanced; choice frame { leaf lan-phy { type empty; description "802.3ae 10-Gbps LAN-mode interface"; } leaf wan-phy { type empty; description "802.3ae 10-Gbps WAN-mode interface"; } leaf sonet { type empty; description "SONET framing"; } leaf sdh { type empty; description "SDH framing"; } } // choice frame } // container framing container lmi { description "Local Management Interface settings"; uses apply-advanced; leaf n391dte { junos:must "(!((".. .. dce" || ".. .. loose-ncp")))"; junos:must-message "LMI DTE options not valid for DCE interface"; type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 255"; } } description "DTE full status polling interval"; } leaf n392dce { junos:must "((".. .. dce" || ".. .. loose-ncp"))"; junos:must-message "LMI DCE options not valid for DTE interface"; type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 10"; } } description "DCE error threshold"; } leaf n392dte { junos:must "(!((".. .. dce" || ".. .. loose-ncp")))"; junos:must-message "LMI DTE options not valid for DCE interface"; type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 10"; } } description "DTE error threshold"; } leaf n393dce { junos:must "((".. .. dce" || ".. .. loose-ncp"))"; junos:must-message "LMI DCE options not valid for DTE interface."; type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 10"; } } description "DCE monitored event count"; } leaf n393dte { junos:must "(!((".. .. dce" || ".. .. loose-ncp")))"; junos:must-message "LMI DTE options not valid for DCE interface"; type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 10"; } } description "DTE monitored event count"; } leaf t391dte { junos:must "(!((".. .. dce" || ".. .. loose-ncp")))"; junos:must-message "LMI DTE options not valid for DCE interface"; type union { type string { pattern "<.*>|$.*"; } type uint16 { range "5 .. 30"; } } units "seconds"; description "DTE polling timer"; } leaf t392dce { junos:must "((".. .. dce" || ".. .. loose-ncp"))"; junos:must-message "LMI DCE options not valid for DTE interface."; type union { type string { pattern "<.*>|$.*"; } type uint16 { range "5 .. 30"; } } units "seconds"; description "DCE polling verification timer"; } leaf lmi-type { type enumeration { enum "ansi" { value 0; description "Use ANSI Annex D LMI"; } enum "itu" { value 1; description "Use ITU Q933a Annex A LMI"; } enum "c-lmi" { value 2; description "Use Consortium LMI"; } } description "Specify the Frame Relay LMI type"; } } // container lmi container mlfr-uni-nni-bundle-options { description "Multilink Frame Relay UNI NNI (FRF.16) management settings"; uses apply-advanced; container cisco-interoperability { description "FRF.16 Cisco interoperability settings"; uses apply-advanced; leaf send-lip-remove-link-for-link-reject { type empty; description "Send Link Integrity Protocol remove link on receiving add-link rejection"; } } // container cisco-interoperability leaf mrru { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1500 .. 4500"; } } units "bytes"; description "Maximum received reconstructed unit"; } leaf yellow-differential-delay { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "3 .. 2000"; } } units "milliseconds"; description "Yellow differential delay among bundle links to give warning"; } leaf red-differential-delay { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "5 .. 2000"; } } units "milliseconds"; description "Red differential delay among bundle links to take action"; } leaf action-red-differential-delay { type enumeration { enum "remove-link" { value 0; description "Remove bundle link from service when exceeding red limit"; } enum "disable-tx" { value 1; description "Disable transfer of bundle link when exceeding red limit"; } } description "Type of actions when differential delay exceeds red limit"; } leaf fragment-threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "64 .. 16320"; } } units "bytes"; description "Fragmentation threshold"; } leaf drop-timeout { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "0 .. 2000"; } } units "milliseconds"; description "Drop timeout"; } leaf link-layer-overhead { type jt:unsigned-float; description "Link layer bit stuffing overhead (0.0 .. 50.0 percent)"; } leaf lmi-type { type enumeration { enum "ansi" { value 0; description "Use ANSI Annex D LMI"; } enum "itu" { value 1; description "Use ITU Q933a Annex A LMI"; } enum "c-lmi" { value 2; description "Use Consortium LMI"; } } description "Specify the multilink Frame Relay UNI NNI LMI type"; } leaf minimum-links { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 8"; } } description "Minimum number of links to sustain the bundle"; } leaf hello-timer { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "5 .. 180"; } } description "LIP hello timer"; } leaf acknowledge-timer { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 10"; } } description "LIP ack timer"; } leaf acknowledge-retries { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 5"; } } description "LIP ack retry times"; } leaf n391 { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 255"; } } description "Multilink Frame Relay UNI NNI full status polling counter"; } leaf n392 { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 10"; } } description "Multilink Frame Relay UNI NNI LMI error threshold"; } leaf n393 { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 10"; } } description "Multilink Frame Relay UNI NNI LMI monitored event count"; } leaf t391 { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "5 .. 30"; } } description "Multilink Frame Relay UNI NNI link integrity verify polling timer"; } leaf t392 { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "5 .. 30"; } } description "Multilink Frame Relay UNI NNI polling verification timer"; } } // container mlfr-uni-nni-bundle-options leaf mac { type jt:mac-unicast; description "Hardware MAC address"; } container receive-bucket { description "Set receive bucket parameters"; uses dcd_rx_bucket_config; } // container receive-bucket container transmit-bucket { description "Set transmit bucket parameters"; uses dcd_tx_bucket_config; } // container transmit-bucket leaf shared-interface { type empty; description "Enable shared interface on the interface"; } container sonet-options { junos:must "((!("interfaces ${interface} container-options") || ("interfaces ${interface} container-options container-type" || "interfaces ${interface} container-options allow-configuration-override")))"; junos:must-message "sonet-options cannot be configured without allow-configuration-override"; description "SONET interface-specific options"; uses sonet_options_type; } // container sonet-options container logical-tunnel-options { description "Logical Tunnel interface-specific options"; uses apply-advanced; container link-protection { presence "enable link-protection"; description "Enable link protection mode"; uses apply-advanced; leaf revertive { junos:must "(!("interfaces ${interface} logical-tunnel-options link-protection non-revertive"))"; junos:must-message "link-protection revertive and non-revertive are mutually exclusive"; junos:must "(any "interfaces ${interface} redundancy-group member-interface <*> active")"; junos:must-message "link-protection mode can be configured only when link-protection is enabled"; type empty; description "Revert back (Default mode) from active backup link to primary, if primary is UP"; } leaf non-revertive { junos:must "(!("interfaces ${interface} logical-tunnel-options link-protection revertive"))"; junos:must-message "link-protection revertive and non-revertive are mutually exclusive"; junos:must "(any "interfaces ${interface} redundancy-group member-interface <*> active")"; junos:must-message "link-protection mode can be configured only when link-protection is enabled"; type empty; description "Do not revert back from active backup link to primary, if primary is UP"; } } // container link-protection leaf per-unit-mac-disable { type empty; description "Disable the creation of per unit mac address on LT IFLs for VPLS/CCC encaps"; } } // container logical-tunnel-options container aggregated-sonet-options { description "Aggregated SONET interface-specific options"; uses apply-advanced; leaf minimum-links { type union { type string { pattern "<.*>|$.*"; } type uint16; } description "Minimum number of aggregated links"; } leaf link-speed { type enumeration { enum "oc3" { value 0; description "Links are OC-3c or STM-1c"; } enum "oc12" { value 1; description "Links are OC-12c or STM-4c"; } enum "oc48" { value 2; description "Links are OC-48c or STM-16c"; } enum "oc192" { value 3; description "Links are OC-192c or STM-64c"; } enum "oc768" { value 4; description "Links are OC-768c or STM-256c"; } enum "mixed" { value 5; description "Links are various speeds"; } } description "Aggregated links speed"; } leaf minimum-bandwidth { type union { type string { pattern "<.*>|$.*"; } type uint64 { range "0 .. 159232000000"; } } units "bps"; description "Minimum bandwidth necessary to sustain bundle"; } } // container aggregated-sonet-options container atm-options { junos:must "((!("interfaces ${interface} container-options") || ("interfaces ${interface} container-options container-type" || !("interfaces ${interface} container-options container-list"))))"; junos:must-message "atm-options cannot be configured on container children"; description "ATM interface-specific options"; uses apply-advanced; leaf pic-type { type enumeration { enum "atm-ce" { value 0; description "CE PIC"; } enum "atm2" { value 1; description "ATM II IQ PIC"; } enum "atm1" { junos:must "(!("interfaces ${interface} container-options"))"; junos:must-message "Only ATM-II pics are supported as container member link"; value 2; description "ATM I PIC"; } } description "Type of ATM PIC (ATM I, ATM II or ATM CE)"; } leaf cell-bundle-size { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 176"; } } units "cells"; description "L2 circuit cell bundle size"; } leaf cell-bundle-timeout { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 512"; } } units "microseconds"; description "L2 circuit cell bundle timeout"; } leaf plp-to-clp { type empty; description "Enable ATM2 PLP to CLP copy"; } leaf use-null-cw { type empty; description "Always insert/strip null control words with cell-relay"; } container promiscuous-mode { presence "enable promiscuous-mode"; description "Set ATM interface to promiscuous mode"; uses apply-advanced; list vpi { key "name"; ordered-by user; description "Open this VPI in promiscuous mode"; leaf name { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Virtual path index"; } } // list vpi } // container promiscuous-mode list vpi { key "name"; ordered-by user; description "Define a virtual path"; leaf name { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Virtual path index"; } uses apply-advanced; leaf maximum-vcs { junos:must "(!("interfaces ${interface} container-options"))"; junos:must-message "Only ATM-II pics are supported as container member link"; type union { type uint32; type string { pattern "<.*>|$.*"; } } description "Maximum number of virtual circuits on this VP"; } container shaping { description "Virtual path traffic-shaping options"; uses dcd_shaping_config; } // container shaping container oam-period { description "F4 OAM cell period"; choice oam_period_choices { leaf oam-period { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 900"; } } units "seconds"; description "F4 OAM cell period"; } container disable { presence "enable disable"; description "Disable F4 OAM loopback"; } // container disable } // choice oam_period_choices } // container oam-period container oam-liveness { description "F4 OAM virtual path liveness parameters"; uses apply-advanced; leaf up-count { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 255"; } } description "Number of F4 OAM cells to consider VP up"; } leaf down-count { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 255"; } } description "Number of F4 OAM cells to consider VP down"; } } // container oam-liveness } // list vpi container ilmi { presence "enable ilmi"; description "Enable Interim Local Management Interface"; uses apply-advanced; } // container ilmi list linear-red-profiles { key "name"; ordered-by user; description "ATM2 CoS virtual circuit drop profiles"; leaf name { type string { junos:posix-pattern "^.{1,64}$"; junos:pattern-message "Must be string of 64 characters or less"; } description "Linear RED profile name"; } leaf queue-depth { type string; units "cells"; description "Maximum queue depth"; } leaf high-plp-threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 100"; } } description "Fill level percentage when linear RED is applied for high PLP"; } leaf low-plp-threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 100"; } } description "Fill level percentage when linear RED is applied for low PLP"; } leaf high-plp-max-threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 100"; } } description "Fill level percentage with 100 percent packet drop for high PLP"; } leaf low-plp-max-threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 100"; } } description "Fill level percentage with 100 percent packet drop for low PLP"; } } // list linear-red-profiles list scheduler-maps { key "name"; ordered-by user; description "ATM2 CoS parameters assigned to forwarding classes"; leaf name { type string { junos:posix-pattern "^((default)|(.{1,64}))$"; junos:pattern-message "Must be a string of 64 characters or less and not 'default'"; } description "ATM2 CoS scheduler map name"; } uses apply-advanced; leaf vc-cos-mode { type enumeration { enum "strict" { value 0; description "Always schedule high priority queue first"; } enum "alternate" { value 1; description "Every other packet from high priority queue (default)"; } } description "ATM2 virtual circuit CoS mode"; } list forwarding-class { key "name"; ordered-by user; description "Scheduling parameters associated with forwarding class"; leaf name { type string { junos:posix-pattern "^.{1,64}$"; junos:pattern-message "Must be string of 64 characters or less"; } description "Forwarding class name"; } uses apply-advanced; leaf priority { type enumeration { enum "low" { value 0; description "Low priority queuing"; } enum "high" { value 1; description "High priority queuing"; } } description "Queuing priority assigned to forwarding class"; } container transmit-weight { description "Transmit weight"; choice weight-method { leaf percent { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "5 .. 100"; } } description "Transmit weight as percentage"; } leaf cells { type string; description "Transmit weight by cells count"; } } // choice weight-method } // container transmit-weight choice drop-profile-method { container epd-threshold { description "Early packet discard threshold for ATM2"; uses epd_threshold_config; } // container epd-threshold leaf linear-red-profile { type string; description "Linear RED profile profile name"; } } // choice drop-profile-method } // list forwarding-class } // list scheduler-maps container mpls { description "MPLS options"; uses mpls_ifd_options; } // container mpls choice payload-scrambler-choice { leaf payload-scrambler { type empty; description "Enable payload scrambling"; } leaf no-payload-scrambler { type empty; description "Don't enable payload scrambling"; } } // choice payload-scrambler-choice } // container atm-options container multiservice-options { description "Multiservice interface-specific options"; uses apply-advanced; choice syslog-choice { leaf syslog { type empty; description "Enable system logging on this interface"; } leaf no-syslog { type empty; description "Don't enable system logging on this interface"; } } // choice syslog-choice choice core-dump-choice { leaf core-dump { type empty; description "Enable core dumping on this interface"; } leaf no-core-dump { type empty; description "Don't enable core dumping on this interface"; } } // choice core-dump-choice choice dump-on-flow-control-choice { leaf dump-on-flow-control { type empty; status deprecated; description "Enable dumping for this interface on prolonged flow-control"; } leaf no-dump-on-flow-control { type empty; status deprecated; description "Don't enable dumping for this interface on prolonged flow-control"; } } // choice dump-on-flow-control-choice choice reset-on-flow-control-choice { leaf reset-on-flow-control { type empty; status deprecated; description "Enable resetting this interface on prolonged flow-control"; } leaf no-reset-on-flow-control { type empty; status deprecated; description "Don't enable resetting this interface on prolonged flow-control"; } } // choice reset-on-flow-control-choice container flow-control-options { description "Flow control configuration"; uses apply-advanced; leaf dump-on-flow-control { junos:must "(!(".. up-on-flow-control"))"; junos:must-message "Option not valid with up-on-flow-control"; junos:must "(!(".. down-on-flow-control"))"; junos:must-message "Option not valid with down-on-flow-control"; junos:must "(!(".. reset-on-flow-control"))"; junos:must-message "Option not valid with reset-on-flow-control"; type empty; description "Cause core dump during prolonged flow-control"; } leaf reset-on-flow-control { junos:must "(!(".. up-on-flow-control"))"; junos:must-message "Option not valid with up-on-flow-control"; junos:must "(!(".. down-on-flow-control"))"; junos:must-message "Option not valid with down-on-flow-control"; junos:must "(!(".. dump-on-flow-control"))"; junos:must-message "Option not valid with dump-on-flow-control"; type empty; description "Reset interface during prolonged flow-control"; } leaf down-on-flow-control { junos:must "(!(".. up-on-flow-control"))"; junos:must-message "Option not valid with up-on-flow-control"; junos:must "(!(".. reset-on-flow-control"))"; junos:must-message "Option not valid with reset-on-flow-control"; junos:must "(!(".. dump-on-flow-control"))"; junos:must-message "Option not valid with dump-on-flow-control"; type empty; description "Bring interface down during prolonged flow-control"; } leaf up-on-flow-control { junos:must "(!(".. down-on-flow-control"))"; junos:must-message "Option not valid with down-on-flow-control"; junos:must "(!(".. reset-on-flow-control"))"; junos:must-message "Option not valid with reset-on-flow-control"; junos:must "(!(".. dump-on-flow-control"))"; junos:must-message "Option not valid with dump-on-flow-control"; type empty; description "Keep interface up during prolonged flow-control"; } } // container flow-control-options } // container multiservice-options container ggsn-options { description "GGSN interface-specific options"; uses apply-advanced; choice syslog-choice { leaf syslog { type empty; description "Enable system logging on this interface"; } leaf no-syslog { type empty; description "Don't enable system logging on this interface"; } } // choice syslog-choice choice core-dump-choice { leaf core-dump { type empty; description "Enable core dumping on this interface"; } leaf no-core-dump { type empty; description "Don't enable core dumping on this interface"; } } // choice core-dump-choice } // container ggsn-options container ppp-options { junos:must "((".. encapsulation ppp" || (".. encapsulation ether-vpls-ppp" || !(".. encapsulation"))))"; junos:must-message "invalid encapsulation"; description "Point-to-Point Protocol (PPP) interface-specific options"; uses ppp_options_type; } // container ppp-options container redundancy-options { description "Redundancy options"; uses apply-advanced; leaf primary { type union { type jt:interface-device; type string { pattern "<.*>|$.*"; } } description "Specify the primary interface"; } leaf secondary { type union { type jt:interface-device; type string { pattern "<.*>|$.*"; } } description "Specify the secondary interface"; } container redundancy-peer { description "Specify information for peer"; uses apply-advanced; leaf ipaddress { type jt:ipv4addr; description "Specify the IP address"; } } // container redundancy-peer container redundancy-local { description "Specify information for the local peer"; uses apply-advanced; leaf data-address { type jt:ipv4addr; description "Specify the HA local data IP address"; } } // container redundancy-local leaf routing-instance { junos:must "(("routing-instances $$" || any "tenants <*> routing-instances $$"))"; junos:must-message "referenced routing-instance must be defined"; type string; description "Specify routing-instance for the HA traffic"; } leaf replication-threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "60 .. 3600"; } } units "seconds"; default "180"; description "Duration for which flow should remain active for replication"; } container replication-options { description "Specify state replication attributes"; uses apply-advanced; leaf mtu { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1500 .. 8000"; } } default "1500"; description "Specify the maximal packet size for replicated data"; } } // container replication-options container replicate-services { description "Replicate services state from active to backup"; uses apply-advanced; leaf pgcp { type empty; description "Replicate the PGCP service state"; } } // container replicate-services } // container redundancy-options container lsq-failure-options { description "Link services queuing failure options"; uses apply-advanced; list trigger-link-failure { key "name"; ordered-by user; description "Link on which to trigger failure"; leaf name { type union { type jt:interface-device; type string { pattern "<.*>|$.*"; } } description "Interface name"; } uses apply-advanced; } // list trigger-link-failure choice no-termination-request-choice { leaf no-termination-request { type empty; description "Do not send PPP termination requests"; } leaf no-no-termination-request { type empty; description "Don't do not send PPP termination requests"; } } // choice no-termination-request-choice } // container lsq-failure-options container services-options { description "Services interface-specific options"; uses apply-advanced; container syslog { description "Define system log parameters"; uses log-object; } // container syslog container jflow-log { description "Define Jflow-log parameters."; uses apply-advanced; leaf message-rate-limit { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 2147483647"; } } units "messages per second"; description "Maximum jflow-log NAT error events allowed per second from this interface"; } } // container jflow-log container deterministic-nat-configuration-log-interval { presence "enable deterministic-nat-configuration-log-interval"; description "Define Deterministic NAT parameters"; uses apply-advanced; leaf interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1800 .. 86400"; } } units "seconds"; description "Interval in which deterministic NAT logs are generated"; } } // container deterministic-nat-configuration-log-interval leaf open-timeout { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "4 .. 300"; } } units "seconds"; description "Timeout period for TCP session establishment"; } leaf close-timeout { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "2 .. 300"; } } units "seconds"; description "Timeout period for TCP session tear-down"; } leaf inactivity-timeout { type union { type uint32; type string { pattern "<.*>|$.*"; } } units "seconds"; description "Inactivity timeout period for established sessions (4..86400)"; } leaf inactivity-tcp-timeout { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "4 .. 86400"; } } units "seconds"; description "Inactivity timeout period for TCP established sessions"; } leaf inactivity-asymm-tcp-timeout { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "4 .. 86400"; } } units "seconds"; description "Inactivity timeout period for asymmetric TCP established sessions"; } leaf inactivity-non-tcp-timeout { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "4 .. 86400"; } } units "seconds"; description "Inactivity timeout period for non-TCP established sessions"; } leaf session-timeout { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "4 .. 86400"; } } units "seconds"; description "Session timeout period for established sessions"; } leaf disable-global-timeout-override { type empty; description "Disallow overriding global inactivity or session timeout"; } leaf tcp-tickles { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "0 .. 30"; } } default "4"; description "Number of TCP keep-alive packets to be sent for bi-directional TCP flows"; } leaf fragment-limit { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "1 .. 250"; } } default "250"; description "Maximum number of fragments allowed for a packet"; } leaf reassembly-timeout { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "1 .. 60"; } } units "seconds"; default "4"; description "Re-assembly timeout (seconds) for fragments of a packet"; } leaf cgn-pic { type empty; description "PIC will be used for Carrier Grade NAT configuration only"; } leaf pba-interim-logging-interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 86400"; } } units "seconds"; default "0"; description "Interim logging interval in seconds"; } container session-limit { presence "enable session-limit"; description "Session limit"; uses apply-advanced; leaf maximum { type string; description "Maximum number of sessions allowed simultaneously"; } leaf rate { type string; description "Maximum number of new sessions allowed per second"; } leaf cpu-load-threshold { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "1 .. 100"; } } units "percent"; description "CPU limit in percentage for auto-tuning of session rate"; } } // container session-limit leaf enable-subscriber-analysis { junos:must "(!(".. disable-subscriber-analysis"))"; junos:must-message "can not set with enable-subscriber-analysis"; type empty; description "Enable subscriber analysis on the interface"; } leaf disable-subscriber-analysis { junos:must "(!(".. enable-subscriber-analysis"))"; junos:must-message "can not set with disable-subscriber-analysis"; type empty; description "Disable subscriber analysis on the interface"; } leaf disable-usp-tracing { type empty; description "Disable usp tracing on this pic"; } leaf disable-drop-flows { type empty; description "Disable drop flows on this pic"; } container ignore-errors { presence "enable ignore-errors"; description "Ignore anomalies or errors"; leaf tcp { type empty; description "TCP protocol errors"; } leaf alg { type empty; description "ALG anomalies or errors"; } } // container ignore-errors container capture { description "Packet capture for SFW and NAT on the Services PIC"; uses apply-advanced; leaf capture-size { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 344000"; } } description "The number of packets to store"; } leaf pkt-size { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "64 .. 15000"; } } description "Number of bytes to be saved from each packet"; } leaf logs-per-packet { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "0 .. 500"; } } description "The number of trace messages stored for each packet"; } leaf max-log-line-size { type union { type uint8; type string { pattern "<.*>|$.*"; } } description "The maximum length of a stored trace message"; } container filter { presence "enable filter"; description "Filtering options for the packet capture"; uses apply-advanced; container source-ip { description "Filter based on source-ip (and wildcard)"; leaf ip { type jt:ipaddr; description "Source IP"; } leaf wildcard { type jt:ipaddr; description "Source IP wildcard"; } } // container source-ip container dest-ip { description "Filter based on dest-ip (and wildcard)"; leaf ip { type jt:ipaddr; description "Dest IP"; } leaf wildcard { type jt:ipaddr; description "Dest IP wildcard"; } } // container dest-ip container sw-sip { description "Filter based on source softwire ip (and wildcard)"; leaf ip { type jt:ipv6addr; description "Source softwire IP"; } leaf wildcard { type jt:ipv6addr; description "Source IP wildcard"; } } // container sw-sip container sw-dip { description "Filter based on destination softwire ip (and wildcard)"; leaf ip { type jt:ipaddr; description "Destination softwire IP"; } leaf wildcard { type jt:ipaddr; description "Destination IP wildcard"; } } // container sw-dip container sport-range { description "Filter based on source port"; leaf low { type union { type uint16; type string { pattern "<.*>|$.*"; } } description "Source port range start"; } leaf high { type union { type uint16; type string { pattern "<.*>|$.*"; } } description "Source port range end"; } } // container sport-range container dport-range { description "Filter based on destination port"; leaf low { type union { type uint16; type string { pattern "<.*>|$.*"; } } description "Destination port range start"; } leaf high { type union { type uint16; type string { pattern "<.*>|$.*"; } } description "Destination port range end"; } } // container dport-range leaf proto { type enumeration { enum "icmp" { value 0; } enum "tcp" { value 1; } enum "udp" { value 2; } } description "Filter based on L4 protocol"; } } // container filter } // container capture container flow { description "Define flow parameters"; uses apply-advanced; container traceoptions { description "Trace options for flow services"; } // container traceoptions } // container flow leaf fpc-pic-information { type empty; description "Include FPC and PIC slot number in the syslogs"; } leaf utc-timestamp { type empty; description "Use UTC time for security log timestamps"; } leaf syslog-local-system-timestamp { type empty; description "Use local system time for services syslog timestamp"; } } // container services-options container t3-options { junos:must "((!("interfaces ${interface} container-options") || ("interfaces ${interface} container-options container-type" || "interfaces ${interface} container-options allow-configuration-override")))"; junos:must-message "t1-options cannot be configured without allow-configuration-override"; description "T3 interface-specific options"; uses apply-advanced; leaf loopback { type enumeration { enum "local" { value 0; description "Local loopback"; } enum "remote" { value 1; description "Remote loopback"; } enum "payload" { value 2; description "Payload loopback"; } } description "Loopback mode"; } choice long-buildout-choice { leaf long-buildout { type empty; description "Set hardware to drive line longer than 255 feet"; } leaf no-long-buildout { type empty; description "Don't set hardware to drive line longer than 255 feet"; } } // choice long-buildout-choice choice loop-timing-choice { leaf loop-timing { type empty; description "Set loop timing for T3"; } leaf no-loop-timing { type empty; description "Don't set loop timing for T3"; } } // choice loop-timing-choice container compatibility-mode { description "Set CSU compatibility mode"; choice vendor { container larscom { junos:must "(!(".. .. unframed"))"; junos:must-message "unframed and larscom cannot coexist"; presence "enable larscom"; description "Compatible with Larscom CSU"; leaf subrate { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 14"; } } description "Set subrate value"; } } // container larscom container verilink { junos:must "(!(".. .. unframed"))"; junos:must-message "unframed and verilink cannot coexist"; presence "enable verilink"; description "Compatible with Verilink CSU (not on 2/4-port T3 PIC)"; leaf subrate { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 28"; } } description "Set subrate value"; } } // container verilink container adtran { junos:must "(!(".. .. unframed"))"; junos:must-message "unframed and adtran cannot coexist"; presence "enable adtran"; description "Compatible with Adtran CSU (not on 2/4-port T3 PIC)"; leaf subrate { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 588"; } } description "Set subrate value"; } } // container adtran container kentrox { presence "enable kentrox"; description "Compatible with Kentrox CSU"; leaf subrate { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 69"; } } description "Set subrate value (not on 2/4-port T3 PIC)"; } } // container kentrox container digital-link { junos:must "(!(".. .. unframed"))"; junos:must-message "unframed and digital-link cannot coexist"; presence "enable digital-link"; description "Compatible with Digital Link CSU"; leaf subrate { type enumeration { enum "301Kb" { value 0; description "301 Kbps"; } enum "601Kb" { value 1; description "601 Kbps"; } enum "902Kb" { value 2; description "902 Kbps"; } enum "1.2Mb" { value 3; description "1.2 Mbps"; } enum "1.5Mb" { value 4; description "1.5 Mbps"; } enum "1.8Mb" { value 5; description "1.8 Mbps"; } enum "2.1Mb" { value 6; description "2.1 Mbps"; } enum "2.4Mb" { value 7; description "2.4 Mbps"; } enum "2.7Mb" { value 8; description "2.7 Mbps"; } enum "3.0Mb" { value 9; description "3.0 Mbps"; } enum "3.3Mb" { value 10; description "3.3 Mbps"; } enum "3.6Mb" { value 11; description "3.6 Mbps"; } enum "3.9Mb" { value 12; description "3.9 Mbps"; } enum "4.2Mb" { value 13; description "4.2 Mbps"; } enum "4.5Mb" { value 14; description "4.5 Mbps"; } enum "4.8Mb" { value 15; description "4.8 Mbps"; } enum "5.1Mb" { value 16; description "5.1 Mbps"; } enum "5.4Mb" { value 17; description "5.4 Mbps"; } enum "5.7Mb" { value 18; description "5.7 Mbps"; } enum "6.0Mb" { value 19; description "6.0 Mbps"; } enum "6.3Mb" { value 20; description "6.3 Mbps"; } enum "6.6Mb" { value 21; description "6.6 Mbps"; } enum "6.9Mb" { value 22; description "6.9 Mbps"; } enum "7.2Mb" { value 23; description "7.2 Mbps"; } enum "7.5Mb" { value 24; description "7.5 Mbps"; } enum "7.8Mb" { value 25; description "7.8 Mbps"; } enum "8.1Mb" { value 26; description "8.1 Mbps"; } enum "8.4Mb" { value 27; description "8.4 Mbps"; } enum "8.7Mb" { value 28; description "8.7 Mbps"; } enum "9.0Mb" { value 29; description "9.0 Mbps"; } enum "9.3Mb" { value 30; description "9.3 Mbps"; } enum "9.6Mb" { value 31; description "9.6 Mbps"; } enum "9.9Mb" { value 32; description "9.9 Mbps"; } enum "10.2Mb" { value 33; description "10.2 Mbps"; } enum "10.5Mb" { value 34; description "10.5 Mbps"; } enum "10.8Mb" { value 35; description "10.8 Mbps"; } enum "11.1Mb" { value 36; description "11.1 Mbps"; } enum "11.4Mb" { value 37; description "11.4 Mbps"; } enum "11.7Mb" { value 38; description "11.7 Mbps"; } enum "12.0Mb" { value 39; description "12.0 Mbps"; } enum "12.3Mb" { value 40; description "12.3 Mbps"; } enum "12.6Mb" { value 41; description "12.6 Mbps"; } enum "12.9Mb" { value 42; description "12.9 Mbps"; } enum "13.2Mb" { value 43; description "13.2 Mbps"; } enum "13.5Mb" { value 44; description "13.5 Mbps"; } enum "13.8Mb" { value 45; description "13.8 Mbps"; } enum "14.1Mb" { value 46; description "14.1 Mbps"; } enum "14.4Mb" { value 47; description "14.4 Mbps"; } enum "14.7Mb" { value 48; description "14.7 Mbps"; } enum "15.0Mb" { value 49; description "15.0 Mbps"; } enum "15.3Mb" { value 50; description "15.3 Mbps"; } enum "15.6Mb" { value 51; description "15.6 Mbps"; } enum "15.9Mb" { value 52; description "15.9 Mbps"; } enum "16.2Mb" { value 53; description "16.2 Mbps"; } enum "16.5Mb" { value 54; description "16.5 Mbps"; } enum "16.8Mb" { value 55; description "16.8 Mbps"; } enum "17.1Mb" { value 56; description "17.1 Mbps"; } enum "17.4Mb" { value 57; description "17.4 Mbps"; } enum "17.7Mb" { value 58; description "17.7 Mbps"; } enum "18.0Mb" { value 59; description "18.0 Mbps"; } enum "18.3Mb" { value 60; description "18.3 Mbps"; } enum "18.6Mb" { value 61; description "18.6 Mbps"; } enum "18.9Mb" { value 62; description "18.9 Mbps"; } enum "19.2Mb" { value 63; description "19.2 Mbps"; } enum "19.5Mb" { value 64; description "19.5 Mbps"; } enum "19.8Mb" { value 65; description "19.8 Mbps"; } enum "20.1Mb" { value 66; description "20.1 Mbps"; } enum "20.5Mb" { value 67; description "20.5 Mbps"; } enum "20.8Mb" { value 68; description "20.8 Mbps"; } enum "21.1Mb" { value 69; description "21.1 Mbps"; } enum "21.4Mb" { value 70; description "21.4 Mbps"; } enum "21.7Mb" { value 71; description "21.7 Mbps"; } enum "22.0Mb" { value 72; description "22.0 Mbps"; } enum "22.3Mb" { value 73; description "22.3 Mbps"; } enum "22.6Mb" { value 74; description "22.6 Mbps"; } enum "22.9Mb" { value 75; description "22.9 Mbps"; } enum "23.2Mb" { value 76; description "23.2 Mbps"; } enum "23.5Mb" { value 77; description "23.5 Mbps"; } enum "23.8Mb" { value 78; description "23.8 Mbps"; } enum "24.1Mb" { value 79; description "24.1 Mbps"; } enum "24.4Mb" { value 80; description "24.4 Mbps"; } enum "24.7Mb" { value 81; description "24.7 Mbps"; } enum "25.0Mb" { value 82; description "25.0 Mbps"; } enum "25.3Mb" { value 83; description "25.3 Mbps"; } enum "25.6Mb" { value 84; description "25.6 Mbps"; } enum "25.9Mb" { value 85; description "25.9 Mbps"; } enum "26.2Mb" { value 86; description "26.2 Mbps"; } enum "26.5Mb" { value 87; description "26.5 Mbps"; } enum "26.8Mb" { value 88; description "26.8 Mbps"; } enum "27.1Mb" { value 89; description "27.1 Mbps"; } enum "27.4Mb" { value 90; description "27.4 Mbps"; } enum "27.7Mb" { value 91; description "27.7 Mbps"; } enum "28.0Mb" { value 92; description "28.0 Mbps"; } enum "28.3Mb" { value 93; description "28.3 Mbps"; } enum "28.6Mb" { value 94; description "28.6 Mbps"; } enum "28.9Mb" { value 95; description "28.9 Mbps"; } enum "29.2Mb" { value 96; description "29.2 Mbps"; } enum "29.5Mb" { value 97; description "29.5 Mbps"; } enum "29.8Mb" { value 98; description "29.8 Mbps"; } enum "30.1Mb" { value 99; description "30.1 Mbps"; } enum "30.4Mb" { value 100; description "30.4 Mbps"; } enum "30.7Mb" { value 101; description "30.7 Mbps"; } enum "31.0Mb" { value 102; description "31.0 Mbps"; } enum "31.3Mb" { value 103; description "31.3 Mbps"; } enum "31.6Mb" { value 104; description "31.6 Mbps"; } enum "31.9Mb" { value 105; description "31.9 Mbps"; } enum "32.2Mb" { value 106; description "32.2 Mbps"; } enum "32.5Mb" { value 107; description "32.5 Mbps"; } enum "32.8Mb" { value 108; description "32.8 Mbps"; } enum "33.1Mb" { value 109; description "33.1 Mbps"; } enum "33.4Mb" { value 110; description "33.4 Mbps"; } enum "33.7Mb" { value 111; description "33.7 Mbps"; } enum "34.0Mb" { value 112; description "34.0 Mbps"; } enum "34.3Mb" { value 113; description "34.3 Mbps"; } enum "34.6Mb" { value 114; description "34.6 Mbps"; } enum "34.9Mb" { value 115; description "34.9 Mbps"; } enum "35.2Mb" { value 116; description "35.2 Mbps"; } enum "35.5Mb" { value 117; description "35.5 Mbps"; } enum "35.8Mb" { value 118; description "35.8 Mbps"; } enum "36.1Mb" { value 119; description "36.1 Mbps"; } enum "36.4Mb" { value 120; description "36.4 Mbps"; } enum "36.7Mb" { value 121; description "36.7 Mbps"; } enum "37.0Mb" { value 122; description "37.0 Mbps"; } enum "37.3Mb" { value 123; description "37.3 Mbps"; } enum "37.6Mb" { value 124; description "37.6 Mbps"; } enum "37.9Mb" { value 125; description "37.9 Mbps"; } enum "38.2Mb" { value 126; description "38.2 Mbps"; } enum "38.5Mb" { value 127; description "38.5 Mbps"; } enum "38.8Mb" { value 128; description "38.8 Mbps"; } enum "39.1Mb" { value 129; description "39.1 Mbps"; } enum "39.4Mb" { value 130; description "39.4 Mbps"; } enum "39.7Mb" { value 131; description "39.7 Mbps"; } enum "40.0Mb" { value 132; description "40.0 Mbps"; } enum "40.3Mb" { value 133; description "40.3 Mbps"; } enum "40.6Mb" { value 134; description "40.6 Mbps"; } enum "40.9Mb" { value 135; description "40.9 Mbps"; } enum "41.2Mb" { value 136; description "41.2 Mbps"; } enum "41.5Mb" { value 137; description "41.5 Mbps"; } enum "41.8Mb" { value 138; description "41.8 Mbps"; } enum "42.1Mb" { value 139; description "42.1 Mbps"; } enum "42.4Mb" { value 140; description "42.4 Mbps"; } enum "42.7Mb" { value 141; description "42.7 Mbps"; } enum "43.0Mb" { value 142; description "43.0 Mbps"; } enum "43.3Mb" { value 143; description "43.3 Mbps"; } enum "43.6Mb" { value 144; description "43.6 Mbps"; } enum "43.9Mb" { value 145; description "43.9 Mbps"; } enum "44.2Mb" { value 146; description "44.2 Mbps"; } } description "Set subrate value"; } } // container digital-link } // choice vendor } // container compatibility-mode choice payload-scrambler-choice { leaf payload-scrambler { type empty; description "Enable payload scrambling"; } leaf no-payload-scrambler { type empty; description "Don't enable payload scrambling"; } } // choice payload-scrambler-choice choice cbit-parity-choice { leaf cbit-parity { junos:must "(!(".. unframed"))"; junos:must-message "cbit-parity and unframed cannot coexist"; type empty; description "Enable C-bit parity mode"; } leaf no-cbit-parity { junos:must "(!(".. unframed"))"; junos:must-message "cbit-parity and unframed cannot coexist"; type empty; description "Don't enable C-bit parity mode"; } } // choice cbit-parity-choice leaf fcs { type enumeration { enum "32" { value 0; description "32-bit mode"; } enum "16" { value 1; description "16-bit mode"; } } description "Frame checksum"; } leaf idle-cycle-flag { type enumeration { enum "flags" { value 0; description "Transmit 0x7E in idle cycles"; } enum "ones" { value 1; description "Transmit 0xFF (all ones) in idle cycles"; } } description "Value to transmit in idle cycles"; } leaf start-end-flag { type enumeration { enum "shared" { value 0; description "Share start/end flags on transmit"; } enum "filler" { value 1; description "Send two idle cycles between start/end flags"; } } description "Set start/end flags on transmission"; } choice feac-loop-respond-choice { leaf feac-loop-respond { type empty; description "Respond to FEAC loop requests"; } leaf no-feac-loop-respond { type empty; description "Don't respond to FEAC loop requests"; } } // choice feac-loop-respond-choice leaf bert-algorithm { type enumeration { enum "pseudo-2e3" { value 0; description "Pattern is 2^3 - 1"; } enum "pseudo-2e4" { value 1; description "Pattern is 2^4 - 1"; } enum "pseudo-2e5" { value 2; description "Pattern is 2^5 - 1"; } enum "pseudo-2e6" { value 3; description "Pattern is 2^6 - 1"; } enum "pseudo-2e7" { value 4; description "Pattern is 2^7 - 1"; } enum "pseudo-2e9-o153" { value 5; description "Pattern is 2^9 - 1 (per O.153 standard)"; } enum "pseudo-2e10" { value 6; description "Pattern is 2^10 - 1"; } enum "pseudo-2e11-o152" { value 7; description "Pattern is 2^11 -1 (per O.152 standard)"; } enum "pseudo-2e15-o151" { value 8; description "Pattern is 2^15 - 1 (per O.151 standard)"; } enum "pseudo-2e17" { value 9; description "Pattern is 2^17 - 1"; } enum "pseudo-2e18" { value 10; description "Pattern is 2^18 - 1"; } enum "pseudo-2e20-o153" { value 11; description "Pattern is 2^20 - 1 (per O.153 standard)"; } enum "pseudo-2e20-o151" { value 12; description "Pattern is 2^20 - 1 (per O.151 standard)"; } enum "pseudo-2e21" { value 13; description "Pattern is 2^21 - 1"; } enum "pseudo-2e22" { value 14; description "Pattern is 2^22 - 1"; } enum "pseudo-2e23-o151" { value 15; description "Pattern is 2^23 (per O.151 standard)"; } enum "pseudo-2e25" { value 16; description "Pattern is 2^25 - 1"; } enum "pseudo-2e28" { value 17; description "Pattern is 2^28 - 1"; } enum "pseudo-2e29" { value 18; description "Pattern is 2^29 - 1"; } enum "pseudo-2e31" { value 19; description "Pattern is 2^31 - 1"; } enum "pseudo-2e32" { value 20; description "Pattern is 2^32 - 1"; } enum "all-ones-repeating" { value 21; description "Repeating one bits"; } enum "all-zeros-repeating" { value 22; description "Repeating zero bits"; } enum "alternating-ones-zeros" { value 23; description "Alternating ones and zeros"; } enum "alternating-double-ones-zeros" { value 24; description "Alternating pairs of ones and zeros"; } enum "repeating-3-in-24" { value 25; description "3 bits in 24 are set"; } enum "repeating-1-in-8" { value 26; description "1 bit in 8 is set"; } enum "repeating-1-in-4" { value 27; description "1 bit in 4 is set"; } } description "Set BERT algorithm"; } leaf bert-error-rate { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 7"; } } description "Bit error rate (10^-n for n > 0, and zero for n = 0)"; } leaf bert-period { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 240"; } } units "seconds"; description "Length of BERT test"; } leaf buildout { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 450"; } } units "feet"; description "Line buildout"; } leaf atm-encapsulation { type enumeration { enum "plcp" { value 0; description "PLCP encapsulation"; } enum "direct" { value 1; description "ATM direct mapping"; } } description "DS-3 interface encapsulation"; } } // container t3-options container e3-options { junos:must "((!("interfaces ${interface} container-options") || ("interfaces ${interface} container-options container-type" || "interfaces ${interface} container-options allow-configuration-override")))"; junos:must-message "t1-options cannot be configured without allow-configuration-override"; description "E3 interface-specific options"; uses apply-advanced; leaf loopback { type enumeration { enum "local" { value 0; description "Local loopback"; } enum "remote" { value 1; description "Remote loopback"; } } description "Loopback mode"; } choice unframed-choice { leaf unframed { type empty; description "Enable unframed mode"; } leaf no-unframed { type empty; description "Don't enable unframed mode"; } } // choice unframed-choice container compatibility-mode { description "Set CSU compatibility mode"; choice vendor { leaf larscom { type empty; description "Compatible with Larscom CSU (only non IQ E3 interfaces)"; } container digital-link { presence "enable digital-link"; description "Compatible with Digital Link CSU"; leaf subrate { type enumeration { enum "358Kb" { value 0; description "358 Kbps"; } enum "716Kb" { value 1; description "716 Kbps"; } enum "1.1Mb" { value 2; description "1.1 Mbps"; } enum "1.4Mb" { value 3; description "1.4 Mbps"; } enum "1.8Mb" { value 4; description "1.8 Mbps"; } enum "2.1Mb" { value 5; description "2.1 Mbps"; } enum "2.5Mb" { value 6; description "2.5 Mbps"; } enum "2.9Mb" { value 7; description "2.9 Mbps"; } enum "3.2Mb" { value 8; description "3.2 Mbps"; } enum "3.6Mb" { value 9; description "3.6 Mbps"; } enum "3.9Mb" { value 10; description "3.9 Mbps"; } enum "4.3Mb" { value 11; description "4.3 Mbps"; } enum "4.7Mb" { value 12; description "4.7 Mbps"; } enum "5.0Mb" { value 13; description "5.0 Mbps"; } enum "5.4Mb" { value 14; description "5.4 Mbps"; } enum "5.7Mb" { value 15; description "5.7 Mbps"; } enum "6.1Mb" { value 16; description "6.1 Mbps"; } enum "6.4Mb" { value 17; description "6.4 Mbps"; } enum "6.8Mb" { value 18; description "6.8 Mbps"; } enum "7.2Mb" { value 19; description "7.2 Mbps"; } enum "7.5Mb" { value 20; description "7.5 Mbps"; } enum "7.9Mb" { value 21; description "7.9 Mbps"; } enum "8.2Mb" { value 22; description "8.2 Mbps"; } enum "8.6Mb" { value 23; description "8.6 Mbps"; } enum "9.0Mb" { value 24; description "9.0 Mbps"; } enum "9.3Mb" { value 25; description "9.3 Mbps"; } enum "9.7Mb" { value 26; description "9.7 Mbps"; } enum "10.0Mb" { value 27; description "10.0 Mbps"; } enum "10.4Mb" { value 28; description "10.4 Mbps"; } enum "10.7Mb" { value 29; description "10.7 Mbps"; } enum "11.1Mb" { value 30; description "11.1 Mbps"; } enum "11.5Mb" { value 31; description "11.5 Mbps"; } enum "11.8Mb" { value 32; description "11.8 Mbps"; } enum "12.2Mb" { value 33; description "12.2 Mbps"; } enum "12.5Mb" { value 34; description "12.5 Mbps"; } enum "12.9Mb" { value 35; description "12.9 Mbps"; } enum "13.2Mb" { value 36; description "13.2 Mbps"; } enum "13.6Mb" { value 37; description "13.6 Mbps"; } enum "14.0Mb" { value 38; description "14.0 Mbps"; } enum "14.3Mb" { value 39; description "14.3 Mbps"; } enum "14.7Mb" { value 40; description "14.7 Mbps"; } enum "15.0Mb" { value 41; description "15.0 Mbps"; } enum "15.4Mb" { value 42; description "15.4 Mbps"; } enum "15.8Mb" { value 43; description "15.8 Mbps"; } enum "16.1Mb" { value 44; description "16.1 Mbps"; } enum "16.5Mb" { value 45; description "16.5 Mbps"; } enum "16.8Mb" { value 46; description "16.8 Mbps"; } enum "17.2Mb" { value 47; description "17.2 Mbps"; } enum "17.5Mb" { value 48; description "17.5 Mbps"; } enum "17.9Mb" { value 49; description "17.9 Mbps"; } enum "18.3Mb" { value 50; description "18.3 Mbps"; } enum "18.6Mb" { value 51; description "18.6 Mbps"; } enum "19.0Mb" { value 52; description "19.0 Mbps"; } enum "19.3Mb" { value 53; description "19.3 Mbps"; } enum "19.7Mb" { value 54; description "19.7 Mbps"; } enum "20.0Mb" { value 55; description "20.0 Mbps"; } enum "20.4Mb" { value 56; description "20.4 Mbps"; } enum "20.8Mb" { value 57; description "20.8 Mbps"; } enum "21.1Mb" { value 58; description "21.1 Mbps"; } enum "21.5Mb" { value 59; description "21.5 Mbps"; } enum "21.8Mb" { value 60; description "21.8 Mbps"; } enum "22.2Mb" { value 61; description "22.2 Mbps"; } enum "22.6Mb" { value 62; description "22.6 Mbps"; } enum "22.9Mb" { value 63; description "22.9 Mbps"; } enum "23.3Mb" { value 64; description "23.3 Mbps"; } enum "23.6Mb" { value 65; description "23.6 Mbps"; } enum "24.0Mb" { value 66; description "24.0 Mbps"; } enum "24.3Mb" { value 67; description "24.3 Mbps"; } enum "24.7Mb" { value 68; description "24.7 Mbps"; } enum "25.1Mb" { value 69; description "25.1 Mbps"; } enum "25.4Mb" { value 70; description "25.4 Mbps"; } enum "25.8Mb" { value 71; description "25.8 Mbps"; } enum "26.1Mb" { value 72; description "26.1 Mbps"; } enum "26.5Mb" { value 73; description "26.5 Mbps"; } enum "26.9Mb" { value 74; description "26.9 Mbps"; } enum "27.2Mb" { value 75; description "27.2 Mbps"; } enum "27.6Mb" { value 76; description "27.6 Mbps"; } enum "27.9Mb" { value 77; description "27.9 Mbps"; } enum "28.3Mb" { value 78; description "28.3 Mbps"; } enum "28.6Mb" { value 79; description "28.6 Mbps"; } enum "29.0Mb" { value 80; description "29.0 Mbps"; } enum "29.4Mb" { value 81; description "29.4 Mbps"; } enum "29.7Mb" { value 82; description "29.7 Mbps"; } enum "30.1Mb" { value 83; description "30.1 Mbps"; } enum "30.4Mb" { value 84; description "30.4 Mbps"; } enum "30.8Mb" { value 85; description "30.8 Mbps"; } enum "31.1Mb" { value 86; description "31.1 Mbps"; } enum "31.5Mb" { value 87; description "31.5 Mbps"; } enum "31.9Mb" { value 88; description "31.9 Mbps"; } enum "32.2Mb" { value 89; description "32.2 Mbps"; } enum "32.6Mb" { value 90; description "32.6 Mbps"; } enum "32.9Mb" { value 91; description "32.9 Mbps"; } enum "33.3Mb" { value 92; description "33.3 Mbps"; } enum "33.7Mb" { value 93; description "33.7 Mbps"; } enum "34.0Mb" { value 94; description "34.0 Mbps"; } } description "Set subrate value"; } } // container digital-link container kentrox { presence "enable kentrox"; description "Compatible with Kentrox CSU"; leaf subrate { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 48"; } } description "Set subrate value (only for E3 IQ interfaces)"; } } // container kentrox } // choice vendor } // container compatibility-mode choice payload-scrambler-choice { leaf payload-scrambler { type empty; description "Enable payload scrambling"; } leaf no-payload-scrambler { type empty; description "Don't enable payload scrambling"; } } // choice payload-scrambler-choice leaf fcs { type enumeration { enum "32" { value 0; description "32-bit mode"; } enum "16" { value 1; description "16-bit mode"; } } description "Frame checksum"; } leaf idle-cycle-flag { type enumeration { enum "flags" { value 0; description "Transmit 0x7E in idle cycles"; } enum "ones" { value 1; description "Transmit 0xFF (all ones) in idle cycles"; } } description "Value to transmit in idle cycles"; } leaf invert-data { type empty; description "Invert data"; } leaf start-end-flag { type enumeration { enum "shared" { value 0; description "Share start/end flags on transmit"; } enum "filler" { value 1; description "Send two idle cycles between start/end flags"; } } description "Set start/end flags on transmission"; } leaf bert-algorithm { type enumeration { enum "pseudo-2e3" { value 0; description "Pattern is 2^3 - 1"; } enum "pseudo-2e4" { value 1; description "Pattern is 2^4 - 1"; } enum "pseudo-2e5" { value 2; description "Pattern is 2^5 - 1"; } enum "pseudo-2e6" { value 3; description "Pattern is 2^6 - 1"; } enum "pseudo-2e7" { value 4; description "Pattern is 2^7 - 1"; } enum "pseudo-2e9-o153" { value 5; description "Pattern is 2^9 - 1 (per O.153 standard)"; } enum "pseudo-2e10" { value 6; description "Pattern is 2^10 - 1"; } enum "pseudo-2e11-o152" { value 7; description "Pattern is 2^11 -1 (per O.152 standard)"; } enum "pseudo-2e15-o151" { value 8; description "Pattern is 2^15 - 1 (per O.151 standard)"; } enum "pseudo-2e17" { value 9; description "Pattern is 2^17 - 1"; } enum "pseudo-2e18" { value 10; description "Pattern is 2^18 - 1"; } enum "pseudo-2e20-o153" { value 11; description "Pattern is 2^20 - 1 (per O.153 standard)"; } enum "pseudo-2e20-o151" { value 12; description "Pattern is 2^20 - 1 (per O.151 standard)"; } enum "pseudo-2e21" { value 13; description "Pattern is 2^21 - 1"; } enum "pseudo-2e22" { value 14; description "Pattern is 2^22 - 1"; } enum "pseudo-2e23-o151" { value 15; description "Pattern is 2^23 (per O.151 standard)"; } enum "pseudo-2e25" { value 16; description "Pattern is 2^25 - 1"; } enum "pseudo-2e28" { value 17; description "Pattern is 2^28 - 1"; } enum "pseudo-2e29" { value 18; description "Pattern is 2^29 - 1"; } enum "pseudo-2e31" { value 19; description "Pattern is 2^31 - 1"; } enum "pseudo-2e32" { value 20; description "Pattern is 2^32 - 1"; } enum "all-ones-repeating" { value 21; description "Repeating one bits"; } enum "all-zeros-repeating" { value 22; description "Repeating zero bits"; } enum "alternating-ones-zeros" { value 23; description "Alternating ones and zeros"; } enum "alternating-double-ones-zeros" { value 24; description "Alternating pairs of ones and zeros"; } enum "repeating-3-in-24" { value 25; description "3 bits in 24 are set"; } enum "repeating-1-in-8" { value 26; description "1 bit in 8 is set"; } enum "repeating-1-in-4" { value 27; description "1 bit in 4 is set"; } } description "Set BERT algorithm"; } leaf bert-error-rate { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 7"; } } description "Bit error rate (10^-n for n > 0, and zero for n = 0)"; } leaf bert-period { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 240"; } } units "seconds"; description "Length of BERT test"; } leaf buildout { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 450"; } } units "feet"; description "Line buildout"; } leaf atm-encapsulation { type enumeration { enum "plcp" { value 0; description "PLCP encapsulation"; } enum "direct" { value 1; description "ATM direct mapping"; } } description "E3 interface encapsulation"; } leaf framing { type enumeration { enum "g.751" { value 0; description "G.751 format"; } enum "g.832" { value 1; description "G.832 format"; } } description "E3 line format"; } } // container e3-options container e1-options { junos:must "((!("interfaces ${interface} container-options") || ("interfaces ${interface} container-options container-type" || "interfaces ${interface} container-options allow-configuration-override")))"; junos:must-message "e1-options cannot be configured without allow-configuration-override"; description "E1 interface-specific options"; uses apply-advanced; leaf timeslots { type string; description "Timeslots (1..32); for example, 1-4,6,9-11,32 (no space)"; } leaf loopback { type enumeration { enum "local" { value 0; description "Local loopback"; } enum "remote" { value 1; description "Remote loopback"; } } description "Loopback mode"; } leaf framing { type enumeration { enum "g704" { value 0; description "G704 mode with CRC4"; } enum "unframed" { value 1; description "Unframed mode"; } enum "g704-no-crc4" { value 2; description "G704 mode without CRC4"; } } description "Framing mode"; } leaf fcs { type enumeration { enum "32" { value 0; description "32-bit mode"; } enum "16" { value 1; description "16-bit mode"; } } description "Frame checksum"; } leaf invert-data { type empty; description "Invert data"; } leaf idle-cycle-flag { type enumeration { enum "flags" { value 0; description "Transmit 0x7E in idle cycles"; } enum "ones" { value 1; description "Transmit 0xFF (all ones) in idle cycles"; } } description "Value to transmit in idle cycles"; } leaf start-end-flag { type enumeration { enum "shared" { value 0; description "Share start/end flags on transmit"; } enum "filler" { value 1; description "Send two idle cycles between start/end flags"; } } description "Set start/end flags on transmission"; } leaf bert-algorithm { type enumeration { enum "pseudo-2e3" { value 0; description "Pattern is 2^3 - 1"; } enum "pseudo-2e4" { value 1; description "Pattern is 2^4 - 1"; } enum "pseudo-2e5" { value 2; description "Pattern is 2^5 - 1"; } enum "pseudo-2e6" { value 3; description "Pattern is 2^6 - 1"; } enum "pseudo-2e7" { value 4; description "Pattern is 2^7 - 1"; } enum "pseudo-2e9-o153" { value 5; description "Pattern is 2^9 - 1 (per O.153 standard)"; } enum "pseudo-2e10" { value 6; description "Pattern is 2^10 - 1"; } enum "pseudo-2e11-o152" { value 7; description "Pattern is 2^11 -1 (per O.152 standard)"; } enum "pseudo-2e15-o151" { value 8; description "Pattern is 2^15 - 1 (per O.151 standard)"; } enum "pseudo-2e17" { value 9; description "Pattern is 2^17 - 1"; } enum "pseudo-2e18" { value 10; description "Pattern is 2^18 - 1"; } enum "pseudo-2e20-o153" { value 11; description "Pattern is 2^20 - 1 (per O.153 standard)"; } enum "pseudo-2e20-o151" { value 12; description "Pattern is 2^20 - 1 (per O.151 standard)"; } enum "pseudo-2e21" { value 13; description "Pattern is 2^21 - 1"; } enum "pseudo-2e22" { value 14; description "Pattern is 2^22 - 1"; } enum "pseudo-2e23-o151" { value 15; description "Pattern is 2^23 (per O.151 standard)"; } enum "pseudo-2e25" { value 16; description "Pattern is 2^25 - 1"; } enum "pseudo-2e28" { value 17; description "Pattern is 2^28 - 1"; } enum "pseudo-2e29" { value 18; description "Pattern is 2^29 - 1"; } enum "pseudo-2e31" { value 19; description "Pattern is 2^31 - 1"; } enum "pseudo-2e32" { value 20; description "Pattern is 2^32 - 1"; } enum "all-ones-repeating" { value 21; description "Repeating one bits"; } enum "all-zeros-repeating" { value 22; description "Repeating zero bits"; } enum "alternating-ones-zeros" { value 23; description "Alternating ones and zeros"; } enum "alternating-double-ones-zeros" { value 24; description "Alternating pairs of ones and zeros"; } enum "repeating-3-in-24" { value 25; description "3 bits in 24 are set"; } enum "repeating-1-in-8" { value 26; description "1 bit in 8 is set"; } enum "repeating-1-in-4" { value 27; description "1 bit in 4 is set"; } } description "Set BERT algorithm"; } leaf bert-error-rate { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 7"; } } description "Bit error rate (10^-n for n > 0, and zero for n = 0)"; } leaf bert-period { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 86400"; } } units "seconds"; description "Length of BERT test"; } } // container e1-options container t1-options { junos:must "((!("interfaces ${interface} container-options") || ("interfaces ${interface} container-options container-type" || "interfaces ${interface} container-options allow-configuration-override")))"; junos:must-message "t1-options cannot be configured without allow-configuration-override"; description "T1 interface-specific options"; uses apply-advanced; leaf timeslots { type string; description "Timeslots (1..24; for example, 1-3,4,9,22-24 (no space)"; } leaf disable-remote-alarm-detection { type enumeration { enum "yellow" { value 0; description "Disable yellow alarm detection"; } } description "Disable detection of a remote alarm"; } leaf loopback { type enumeration { enum "local" { value 0; description "Local loopback"; } enum "remote" { value 1; description "Remote loopback"; } enum "payload" { value 2; description "Payload loopback"; } } description "Loopback mode"; } leaf buildout { type enumeration { enum "0-132" { value 0; description "Line buildout is between 0-132 feet"; } enum "133-265" { value 1; description "Line buildout is between 133-265 feet"; } enum "266-398" { value 2; description "Line buildout is between 266-398 feet"; } enum "399-531" { value 3; description "Line buildout is between 399-531 feet"; } enum "532-655" { value 4; description "Line buildout is between 532-655 feet"; } enum "long-0db" { value 5; description "Long buildout with 0 dB transmit attenuation"; } enum "long-7.5db" { value 6; description "Long buildout with 7.5 dB transmit attenuation"; } enum "long-15db" { value 7; description "Long buildout with 15 dB transmit attenuation"; } enum "long-22.5db" { value 8; description "Long buildout with 22.5 dB transmit attenuation"; } } description "Line buildout"; } leaf byte-encoding { type enumeration { enum "nx64" { value 0; description "8 bits per byte"; } enum "nx56" { value 1; description "7 bits per byte"; } } description "Byte encoding"; } leaf line-encoding { type enumeration { enum "ami" { value 0; description "Automatic mark inversion"; } enum "b8zs" { value 1; description "8-bit zero suppression"; } } description "Line encoding"; } leaf invert-data { type empty; description "Invert data"; } leaf framing { type enumeration { enum "sf" { value 0; description "Super frame"; } enum "esf" { value 1; description "Extended super frame"; } } description "Framing mode"; } leaf fcs { type enumeration { enum "32" { value 0; description "32-bit mode"; } enum "16" { value 1; description "16-bit mode"; } } description "Frame checksum"; } leaf idle-cycle-flag { type enumeration { enum "flags" { value 0; description "Transmit 0x7E in idle cycles"; } enum "ones" { value 1; description "Transmit 0xFF (all ones) in idle cycles"; } } description "Value to transmit in idle cycles"; } leaf start-end-flag { type enumeration { enum "shared" { value 0; description "Share start/end flags on transmit"; } enum "filler" { value 1; description "Send two idle cycles between start/end flags"; } } description "Set start/end flags on transmission"; } leaf bert-algorithm { type enumeration { enum "pseudo-2e3" { value 0; description "Pattern is 2^3 - 1"; } enum "pseudo-2e4" { value 1; description "Pattern is 2^4 - 1"; } enum "pseudo-2e5" { value 2; description "Pattern is 2^5 - 1"; } enum "pseudo-2e6" { value 3; description "Pattern is 2^6 - 1"; } enum "pseudo-2e7" { value 4; description "Pattern is 2^7 - 1"; } enum "pseudo-2e9-o153" { value 5; description "Pattern is 2^9 - 1 (per O.153 standard)"; } enum "pseudo-2e10" { value 6; description "Pattern is 2^10 - 1"; } enum "pseudo-2e11-o152" { value 7; description "Pattern is 2^11 -1 (per O.152 standard)"; } enum "pseudo-2e15-o151" { value 8; description "Pattern is 2^15 - 1 (per O.151 standard)"; } enum "pseudo-2e17" { value 9; description "Pattern is 2^17 - 1"; } enum "pseudo-2e18" { value 10; description "Pattern is 2^18 - 1"; } enum "pseudo-2e20-o153" { value 11; description "Pattern is 2^20 - 1 (per O.153 standard)"; } enum "pseudo-2e20-o151" { value 12; description "Pattern is 2^20 - 1 (per O.151 standard)"; } enum "pseudo-2e21" { value 13; description "Pattern is 2^21 - 1"; } enum "pseudo-2e22" { value 14; description "Pattern is 2^22 - 1"; } enum "pseudo-2e23-o151" { value 15; description "Pattern is 2^23 (per O.151 standard)"; } enum "pseudo-2e25" { value 16; description "Pattern is 2^25 - 1"; } enum "pseudo-2e28" { value 17; description "Pattern is 2^28 - 1"; } enum "pseudo-2e29" { value 18; description "Pattern is 2^29 - 1"; } enum "pseudo-2e31" { value 19; description "Pattern is 2^31 - 1"; } enum "pseudo-2e32" { value 20; description "Pattern is 2^32 - 1"; } enum "all-ones-repeating" { value 21; description "Repeating one bits"; } enum "all-zeros-repeating" { value 22; description "Repeating zero bits"; } enum "alternating-ones-zeros" { value 23; description "Alternating ones and zeros"; } enum "alternating-double-ones-zeros" { value 24; description "Alternating pairs of ones and zeros"; } enum "repeating-3-in-24" { value 25; description "3 bits in 24 are set"; } enum "repeating-1-in-8" { value 26; description "1 bit in 8 is set"; } enum "repeating-1-in-4" { value 27; description "1 bit in 4 is set"; } } description "Set BERT algorithm"; } leaf bert-error-rate { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 7"; } } description "Bit error rate (10^-n for n > 0, and zero for n = 0)"; } leaf bert-period { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 86400"; } } units "seconds"; description "Length of BERT test"; } leaf remote-loopback-respond { type empty; description "Respond to loop requests from remote end"; } leaf crc-major-alarm-threshold { type enumeration { enum "1e-3" { value 0; description "1 crc error in 10^3 bits"; } enum "5e-4" { value 1; description "5 crc errors in 10^4 bits"; } enum "1e-4" { value 2; description "1 crc error in 10^4 bits"; } enum "5e-5" { value 3; description "5 crc errors in 10^5 bits"; } enum "1e-5" { value 4; description "1 crc error in 10^5 bits"; } } default "5e-5"; description "CRC Major alarm threshold value"; } leaf crc-minor-alarm-threshold { type enumeration { enum "1e-3" { value 0; description "1 crc error in 10^3 bits"; } enum "5e-4" { value 1; description "5 crc errors in 10^4 bits"; } enum "1e-4" { value 2; description "1 crc error in 10^4 bits"; } enum "5e-5" { value 3; description "5 crc errors in 10^5 bits"; } enum "1e-5" { value 4; description "1 crc error in 10^5 bits"; } enum "5e-6" { value 5; description "5 crc errors in 10^6 bits"; } enum "1e-6" { value 6; description "1 crc error in 10^6 bits"; } } default "5e-6"; description "CRC Minor alarm threshold value"; } } // container t1-options container ds0-options { junos:must "((!("interfaces ${interface} container-options") || ("interfaces ${interface} container-options container-type" || "interfaces ${interface} container-options allow-configuration-override")))"; junos:must-message "ds0-options cannot be configured without allow-configuration-override"; description "DS-0 interface-specific options"; uses apply-advanced; leaf loopback { type enumeration { enum "payload" { value 0; description "Payload loopback"; } } description "Loopback mode"; } leaf byte-encoding { type enumeration { enum "nx64" { value 0; description "8 bits per byte"; } enum "nx56" { value 1; description "7 bits per byte"; } } description "Byte encoding"; } leaf invert-data { type empty; description "Invert data"; } leaf fcs { type enumeration { enum "32" { value 0; description "32-bit mode"; } enum "16" { value 1; description "16-bit mode"; } } description "Frame checksum"; } leaf idle-cycle-flag { type enumeration { enum "flags" { value 0; description "Transmit 0x7E in idle cycles"; } enum "ones" { value 1; description "Transmit 0xFF (all ones) in idle cycles"; } } description "Value to transmit in idle cycles"; } leaf start-end-flag { type enumeration { enum "shared" { value 0; description "Share start/end flags on transmit"; } enum "filler" { value 1; description "Send two idle cycles between start/end flags"; } } description "Set start/end flags on transmission"; } leaf bert-algorithm { type enumeration { enum "pseudo-2e11-o152" { value 0; description "Pattern is 2^11 -1 (per O.152 standard)"; } enum "pseudo-2e15-o151" { value 1; description "Pattern is 2^15 - 1 (per O.151 standard)"; } enum "pseudo-2e20-o153" { value 2; description "Pattern is 2^20 - 1 (per O.153 standard)"; } enum "pseudo-2e20-o151" { value 3; description "Pattern is 2^20 - 1 (per O.151 standard)"; } enum "all-ones-repeating" { value 4; description "Repeating one bits"; } enum "all-zeros-repeating" { value 5; description "Repeating zero bits"; } enum "alternating-ones-zeros" { value 6; description "Alternating ones and zeros"; } enum "alternating-double-ones-zeros" { value 7; description "Alternating pairs of ones and zeros"; } enum "repeating-3-in-24" { value 8; description "3 bits in 24 are set"; } enum "repeating-1-in-8" { value 9; description "1 bit in 8 is set"; } enum "repeating-1-in-4" { value 10; description "1 bit in 4 is set"; } enum "repeating-1-in-16" { value 11; description "1 bit in 16 is set"; } } description "Set BERT algorithm"; } leaf bert-error-rate { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 7"; } } description "Bit error rate (10^-n for n > 0, and zero for n = 0)"; } leaf bert-period { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 240"; } } units "seconds"; description "Length of BERT test"; } } // container ds0-options container serial-options { description "Serial interface-specific options"; uses apply-advanced; leaf line-protocol { type enumeration { enum "eia530" { value 0; description "Line protocol EIA530"; } enum "v.35" { value 1; description "Line protocol V.35"; } enum "x.21" { value 2; description "Line protocol X.21"; } } default "eia530"; description "Line protocol to be used"; } choice control_leads_choice { container dte-options { description "DTE options/control leads"; uses apply-advanced; leaf ignore-all { junos:must "(!(".. indication"))"; junos:must-message "SERIAL: ignore-all configured when indication explicitly configured"; junos:must "(!(".. cts"))"; junos:must-message "SERIAL: ignore-all configured when cts explicitly configured"; junos:must "(!(".. dsr"))"; junos:must-message "SERIAL: ignore-all configured when dsr explicitly configured"; junos:must "(!(".. tm"))"; junos:must-message "SERIAL: ignore-all configured when tm explicitly configured"; junos:must "(!(".. dcd"))"; junos:must-message "SERIAL: ignore-all configured when dcd explicitly configured"; type empty; description "Ignore all control leads"; } container dtr { description "Data Transmit Ready signal handling"; choice dtr_choices { leaf assert { type empty; description "Assert DTR signal"; } leaf de-assert { type empty; description "Deassert DTR signal"; } leaf normal { type empty; description "Normal DTR signal"; } container auto-synchronize { presence "enable auto-synchronize"; description "Normal DTR signal, with autoresynchronization"; uses apply-advanced; leaf duration { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 1000"; } } units "milliseconds"; description "Duration of autoresynchronization"; } leaf interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 31"; } } units "seconds"; description "Interval for autoresynchronization"; } } // container auto-synchronize } // choice dtr_choices } // container dtr leaf control-signal { junos:must "(!(".. .. line-protocol eia530"))"; junos:must-message "Control signal invalid on line-protocol eia530"; junos:must "(!(".. .. line-protocol v.35"))"; junos:must-message "Control signal invalid on line-protocol v.35"; type enumeration { enum "assert" { value 0; description "Assert control signal"; } enum "de-assert" { value 1; description "Deassert control signal"; } enum "normal" { value 2; description "Normal control signal"; } } description "X.21 control signal handling"; } leaf rts { junos:must "(!(".. .. line-protocol x.21"))"; junos:must-message "rts invalid on line-protocol x.21"; type enumeration { enum "assert" { value 0; description "Assert RTS signal"; } enum "de-assert" { value 1; description "Deassert RTS signal"; } enum "normal" { value 2; description "Normal RTS signal"; } } description "Request To Send signal handling"; } leaf dcd { type enumeration { enum "require" { value 0; description "Require DCD signal"; } enum "ignore" { value 1; description "Ignore DCD signal"; } enum "normal" { value 2; description "Normal DCD signal"; } } description "Data Carrier Detect signal handling"; } leaf dsr { type enumeration { enum "require" { value 0; description "Require DSR signal"; } enum "ignore" { value 1; description "Ignore DSR signal"; } enum "normal" { value 2; description "Normal DSR signal"; } } description "Data Set Ready signal handling"; } leaf cts { junos:must "(!(".. .. line-protocol x.21"))"; junos:must-message "cts invalid on line-protocol x.21"; type enumeration { enum "require" { value 0; description "Require CTS signal"; } enum "ignore" { value 1; description "Ignore CTS signal"; } enum "normal" { value 2; description "Normal CTS signal"; } } description "Clear To Send signal handling"; } leaf indication { junos:must "(!(".. .. line-protocol eia530"))"; junos:must-message "Indication invalid on line-protocol eia530"; junos:must "(!(".. .. line-protocol v.35"))"; junos:must-message "Indication invalid on line-protocol v.35"; type enumeration { enum "require" { value 0; description "Require Indication signal"; } enum "ignore" { value 1; description "Ignore Indication signal"; } enum "normal" { value 2; description "Normal Indication signal"; } } description "X.21 Indication signal handling"; } leaf tm { type enumeration { enum "require" { value 0; description "Require TM signal"; } enum "ignore" { value 1; description "Ignore TM signal"; } enum "normal" { value 2; description "Normal TM signal"; } } description "Test Mode signal handling"; } } // container dte-options case case_2 { } // case case_2 } // choice control_leads_choice leaf dtr-circuit { junos:must "(!(".. line-protocol x.21"))"; junos:must-message "dtr-circuit invalid with line protocol x.21"; type enumeration { enum "balanced" { value 0; description "Balanced signal"; } enum "unbalanced" { value 1; description "Unbalanced signal"; } } description "Data Transmit Ready circuit mode"; } leaf dtr-polarity { junos:must "(!(".. line-protocol x.21"))"; junos:must-message "dtr-polarity invalid with line protocol x.21"; type enumeration { enum "positive" { value 0; description "Positive polarity"; } enum "negative" { value 1; description "Negative polarity"; } } description "Data Transmit Ready signal polarity"; } leaf rts-polarity { junos:must "(!(".. line-protocol x.21"))"; junos:must-message "rts invalid on line-protocol x.21"; type enumeration { enum "positive" { value 0; description "Positive polarity"; } enum "negative" { value 1; description "Negative polarity"; } } description "Request To Send signal polarity"; } leaf control-polarity { junos:must "(!(".. line-protocol eia530"))"; junos:must-message "Control signal invalid on line-protocol eia530"; junos:must "(!(".. line-protocol v.35"))"; junos:must-message "Control signal invalid on line-protocol v.35"; type enumeration { enum "positive" { value 0; description "Positive polarity"; } enum "negative" { value 1; description "Negative polarity"; } } description "X.21 Control signal polarity"; } leaf dcd-polarity { junos:must "(!(".. line-protocol x.21"))"; junos:must-message "dcd-polarity invalid with line protocol x.21"; type enumeration { enum "positive" { value 0; description "Positive polarity"; } enum "negative" { value 1; description "Negative polarity"; } } description "Data Carrier Detect signal polarity"; } leaf dsr-polarity { junos:must "(!(".. line-protocol x.21"))"; junos:must-message "dsr-polarity invalid with line protocol x.21"; type enumeration { enum "positive" { value 0; description "Positive polarity"; } enum "negative" { value 1; description "Negative polarity"; } } description "Data Set Ready signal polarity"; } leaf cts-polarity { junos:must "(!(".. line-protocol x.21"))"; junos:must-message "cts invalid on line-protocol x.21"; type enumeration { enum "positive" { value 0; description "Positive polarity"; } enum "negative" { value 1; description "Negative polarity"; } } description "Clear To Send signal polarity"; } leaf indication-polarity { junos:must "(!(".. line-protocol eia530"))"; junos:must-message "Indication invalid on line-protocol eia530"; junos:must "(!(".. line-protocol v.35"))"; junos:must-message "Indication invalid on line-protocol v.35"; type enumeration { enum "positive" { value 0; description "Positive polarity"; } enum "negative" { value 1; description "Negative polarity"; } } description "X.21 Indication signal polarity"; } leaf tm-polarity { junos:must "(!(".. line-protocol x.21"))"; junos:must-message "tm-polarity invalid for line protocol x.21"; junos:must "(!(".. line-protocol v.35"))"; junos:must-message "tm-polarity invalid for line protocol v.35"; type enumeration { enum "positive" { value 0; description "Positive polarity"; } enum "negative" { value 1; description "Negative polarity"; } } description "Test Mode signal polarity"; } leaf clocking-mode { type enumeration { enum "dce" { value 0; description "DCE timing (DTE mode only, not valid for X.21)"; } enum "internal" { value 1; description "Internal baud timing"; } enum "loop" { value 2; description "Loop timing"; } } description "Clock mode"; } leaf transmit-clock { type enumeration { enum "invert" { value 0; description "Shift clock phase 180 degrees"; } } description "Transmit clock phase"; } leaf clock-rate { type enumeration { enum "2.048mhz" { value 0; description "2.048 MHz"; } enum "2.341mhz" { value 1; description "2.341 MHz"; } enum "2.731mhz" { value 2; description "2.731 MHz"; } enum "3.277mhz" { value 3; description "3.277 MHz"; } enum "4.096mhz" { value 4; description "4.096 MHz"; } enum "5.461mhz" { value 5; description "5.461 MHz"; } enum "8.192mhz" { value 6; description "8.192 MHz"; } enum "16.384mhz" { value 7; description "16.384 MHz"; } enum "1.2khz" { value 8; description "1.2 KHz"; } enum "2.4khz" { value 9; description "2.4 KHz"; } enum "9.6khz" { value 10; description "9.6 KHz"; } enum "19.2khz" { value 11; description "19.2 KHz"; } enum "38.4khz" { value 12; description "38.4 KHz"; } enum "56.0khz" { value 13; description "56.0 KHz"; } enum "64.0khz" { value 14; description "64.0 KHz"; } enum "72.0khz" { value 15; description "72.0 KHz"; } enum "125.0khz" { value 16; description "125.0 KHz"; } enum "148.0khz" { value 17; description "148.0 KHz"; } enum "250.0khz" { value 18; description "250.0 KHz"; } enum "500.0khz" { value 19; description "500.0 KHz"; } enum "800.0khz" { value 20; description "800.0 KHz"; } enum "1.0mhz" { value 21; description "1.0 MHz"; } enum "1.3mhz" { value 22; description "1.3 MHz"; } enum "2.0mhz" { value 23; description "2.0 MHz"; } enum "4.0mhz" { value 24; description "4.0 MHz"; } enum "8.0mhz" { value 25; description "8.0 MHz"; } } description "Interface clock rate"; } leaf loopback { type enumeration { enum "local" { value 0; description "Local loopback"; } enum "remote" { value 1; description "Remote/LIU loopback"; } enum "dce-local" { value 2; description "DCE local loopback (DTE mode only)"; } enum "dce-remote" { value 3; description "DCE remote loopback"; } } description "Loopback mode"; } leaf encoding { type enumeration { enum "nrz" { value 0; description "Non-Return-To-Zero"; } enum "nrzi" { value 1; description "Non-Return-To-Zero-Invertible"; } } description "Line encoding"; } } // container serial-options choice gratuitous-arp-reply-choice { leaf gratuitous-arp-reply { type empty; description "Enable gratuitous ARP reply"; } leaf no-gratuitous-arp-reply { type empty; description "Don't enable gratuitous ARP reply"; } } // choice gratuitous-arp-reply-choice choice no-gratuitous-arp-request-choice { leaf no-gratuitous-arp-request { type empty; description "Ignore gratuitous ARP request"; } leaf no-no-gratuitous-arp-request { type empty; description "Don't ignore gratuitous ARP request"; } } // choice no-gratuitous-arp-request-choice leaf arp-l2-validate { type empty; description "Validate ARP against L2"; } container ether-options { description "Ethernet interface-specific options"; uses apply-advanced; choice loopback-choice { leaf loopback { type empty; description "Enable loopback"; } leaf no-loopback { type empty; description "Don't enable loopback"; } } // choice loopback-choice leaf loopback-remote { junos:must "(!(".. .. optics-options loopback"))"; junos:must-message "'optics-options loopback' and loopback-remote are mutually exclusive"; junos:must "(!(".. loopback"))"; junos:must-message "loopback and loopback-remote are mutually exclusive"; type empty; description "Enable remote loopback"; } choice source-filtering-choice { leaf source-filtering { type empty; description "Enable source address filtering"; } leaf no-source-filtering { type empty; description "Don't enable source address filtering"; } } // choice source-filtering-choice container ethernet-switch-profile { description "Ethernet virtual LAN/media access control-level options"; uses apply-advanced; leaf-list tag-protocol-id { type string; ordered-by user; description "IEEE 802.1q Tag Protocol Identifier values for VLAN-tagged frames"; } container ethernet-policer-profile { description "Ethernet level CoS-based policer configuration"; uses apply-advanced; container input-priority-map { description "Input policer priority map"; uses cos_policer_input_priority_map; } // container input-priority-map container output-priority-map { description "Output policer priority map"; uses cos_policer_output_priority_map; } // container output-priority-map list policer { key "name"; ordered-by user; description "Policer template definition"; uses cos_policer; } // list policer } // container ethernet-policer-profile container storm-control { junos:must "(!(any "interfaces ${interface} unit <*> family ethernet-switching storm-control <*>"))"; junos:must-message "An interface cannot have storm control on both family ethernet-switching and ethernet switch profile"; description "Storm control profile name to bind"; uses apply-advanced; leaf profile-name { junos:must "("forwarding-options storm-control-profiles $$")"; junos:must-message "Storm profile name must be defined in the [edit forwarding-options storm-control-profiles] hierarchy"; junos:must "(!("forwarding-options storm-control-profiles $$ action-shutdown"))"; junos:must-message "Action shutdown is not supported with the attached interface"; type string; description "Profile name"; } } // container storm-control container recovery-timeout { description "Recovery timeout for this interface"; leaf time-in-seconds { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "10 .. 3600"; } } units "seconds"; } } // container recovery-timeout choice mac-learn-enable-choice { leaf mac-learn-enable { type empty; description "Learn MAC addresses dynamically"; } leaf no-mac-learn-enable { type empty; description "Don't learn MAC addresses dynamically"; } } // choice mac-learn-enable-choice } // container ethernet-switch-profile leaf asynchronous-notification { type empty; description "Enable sending asynchronous notification to peer on CCC-down"; } list source-address-filter { key "name"; description "Source address filters"; leaf name { type jt:mac-addr; description "Remote MAC address"; } } // list source-address-filter choice auto-negotiation-choice { leaf auto-negotiation { type empty; description "Enable auto-negotiation"; } leaf no-auto-negotiation { type empty; description "Don't enable auto-negotiation"; } } // choice auto-negotiation-choice choice flow-control-choice { leaf flow-control { type empty; description "Enable flow control"; } leaf no-flow-control { type empty; description "Don't enable flow control"; } } // choice flow-control-choice container configured-flow-control { junos:must "(!((".. flow-control" || ".. no-flow-control")))"; junos:must-message "flow-control and configured-flow-control are not allowed together"; presence "enable configured-flow-control"; description "Enable flow control"; uses apply-advanced; leaf rx-buffers { type enumeration { enum "on" { value 0; description "Enable Rx buffers"; } enum "off" { value 1; description "Disable Rx buffers"; } } description "Enable/Disable Rx buffers"; } leaf tx-buffers { type enumeration { enum "on" { value 0; description "Enable Tx buffers"; } enum "off" { value 1; description "Disable Tx buffers"; } } description "Enable/Disable Tx buffers"; } } // container configured-flow-control leaf link-mode { type enumeration { enum "automatic" { value 0; description "Automatic negotiate duplex "; } enum "half-duplex" { value 1; description "Half-duplex operation"; } enum "full-duplex" { value 2; description "Full-duplex operation"; } } description "Link duplex"; } container mpls { description "MPLS options"; uses mpls_ifd_options; } // container mpls leaf ignore-l3-incompletes { type empty; description "Ignore L3 incomplete errors"; } leaf no-auto-mdix { type empty; description "Disable auto MDI/MDIX"; } leaf fec { type enumeration { enum "none" { value 0; description "FEC disabled"; } enum "fec91" { value 1; description "IEEE 802.3bj Clause 91, Reed-Solomon FEC (RS-FEC)"; } enum "fec74" { value 2; description "FEC74 enabled"; } enum "fec108" { value 3; description "IEEE 802.3by Clause 108, Reed-Solomon FEC (RS-FEC) on 25g links"; } } description "Forward Error Correction mode"; } container speed { description "Specify speed"; choice automatic { container auto-negotiation { presence "enable auto-negotiation"; description "Enable auto-negotiation"; leaf auto-negotiate-10-100 { type empty; description "Limits the auto-negotiation to 10m/100m only"; } } // container auto-negotiation leaf ethernet-10m { type empty; description "10Mbps"; } leaf ethernet-100m { type empty; description "100Mbps"; } leaf ethernet-1g { type empty; description "1Gbps"; } leaf ethernet-10g { type empty; description "10Gbps"; } } // choice automatic } // container speed container ieee-802.3ad { junos:must "(!("system autoinstallation"))"; junos:must-message "incompatible with 'system autoinstallation'"; description "IEEE 802.3ad"; uses apply-advanced; container lacp { description "Link Aggregation Control Protocol configuration"; uses apply-advanced; leaf force-up { type empty; description "Keep the port up in absence of received LACPDU"; } leaf port-priority { type union { type uint16; type string { pattern "<.*>|$.*"; } } description "Priority of the port (0 ... 65535)"; } } // container lacp leaf bundle { junos:must "(!(".. .. .. gigether-options 802.3ad"))"; junos:must-message "Member link cannot be a part of multiple aggregation group"; junos:must "(!(".. .. .. vlan-offload"))"; junos:must-message "ae child device vlan-offload is not allowed"; junos:must "(!(".. .. .. flow-control"))"; junos:must-message "Setting flow-control on ae child device is not allowed"; junos:must "(!(".. .. .. mtu"))"; junos:must-message "Setting mtu on ae child device is not allowed"; junos:must "(!(".. .. .. vlan-vci-tagging"))"; junos:must-message "ae child device vlan-vci-tagging is not allowed"; junos:must "(!(".. .. .. stacked-vlan-tagging"))"; junos:must-message "ae child device stacked-vlan-tagging is not allowed"; junos:must "(!(".. .. .. flexible-vlan-tagging"))"; junos:must-message "ae child device flexible-vlan-tagging is not allowed"; junos:must "(!(".. .. .. vlan-tagging"))"; junos:must-message "ae child device vlan-tagging is not allowed"; junos:must "(!(".. .. .. passive-monitor-mode"))"; junos:must-message "802.3ad not valid for passive-monitor-mode"; type union { type jt:interface-device; type string { pattern "<.*>|$.*"; } } description "Join an aggregated Ethernet interface"; } choice type { leaf primary { type empty; description "Primary interface for link-protection mode"; } leaf backup { type empty; description "Backup interface for link-protection mode"; } } // choice type container link-protection-sub-group { description "Link Protection subgroup configuration"; uses apply-advanced; leaf subgroup-name { type string { length "2 .. 64"; } description "Name of the subgroup"; } } // container link-protection-sub-group leaf port-priority { type union { type uint16; type string { pattern "<.*>|$.*"; } } description "Link protection Priority of the port (0 ... 65535)"; } } // container ieee-802.3ad leaf ieee-802-3az-eee { type empty; description "IEEE 802.3az Energy Efficient Ethernet(EEE)"; } leaf autostate-exclude { type empty; description "Interface will not contribute to IRB state"; } } // container ether-options container fibrechannel-options { description "Fibre Channel interface-specific options"; uses apply-advanced; choice loopback-choice { leaf loopback { type empty; description "Enable loopback"; } leaf no-loopback { type empty; description "Don't enable loopback"; } } // choice loopback-choice leaf bb-sc-n { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "0 .. 15"; } } description "B2B state change number"; } leaf speed { type enumeration { enum "auto-negotiation" { value 0; description "Enable auto-negotiation"; } enum "1g" { value 1; description "1Gbps"; } enum "2g" { value 2; description "2Gbps"; } enum "4g" { value 3; description "4Gbps"; } enum "8g" { value 4; description "8Gbps"; } } description "Specify speed"; } } // container fibrechannel-options container gigether-options { description "Gigabit Ethernet interface-specific options"; uses apply-advanced; choice loopback-choice { leaf loopback { type empty; description "Enable loopback"; } leaf no-loopback { type empty; description "Don't enable loopback"; } } // choice loopback-choice leaf loopback-remote { junos:must "(!(".. .. optics-options loopback"))"; junos:must-message "'optics-options loopback' and loopback-remote are mutually exclusive"; junos:must "(!(".. loopback"))"; junos:must-message "loopback and loopback-remote are mutually exclusive"; type empty; description "Enable remote loopback"; } choice flow-control-choice { leaf flow-control { type empty; description "Enable flow control"; } leaf no-flow-control { type empty; description "Don't enable flow control"; } } // choice flow-control-choice choice source-filtering-choice { leaf source-filtering { type empty; description "Enable source address filtering"; } leaf no-source-filtering { type empty; description "Don't enable source address filtering"; } } // choice source-filtering-choice choice auto_negotiation_option { leaf no-auto-negotiation { type empty; description "Disable auto-negotiation"; } container auto-negotiation { presence "enable auto-negotiation"; description "Enable auto-negotiation"; leaf remote-fault { type enumeration { enum "local-interface-offline" { value 0; description "Disable local interface"; } enum "local-interface-online" { value 1; description "Enable local interface"; } } } } // container auto-negotiation } // choice auto_negotiation_option leaf asynchronous-notification { type empty; description "Enable sending asynchronous notification to peer on CCC-down"; } list source-address-filter { key "name"; description "Source address filters"; leaf name { type jt:mac-addr; description "Remote MAC address"; } } // list source-address-filter container ieee-802.3ad { junos:must "(!("system autoinstallation"))"; junos:must-message "incompatible with 'system autoinstallation'"; description "IEEE 802.3ad"; uses apply-advanced; container lacp { description "Link Aggregation Control Protocol configuration"; uses apply-advanced; leaf port-priority { type union { type uint16; type string { pattern "<.*>|$.*"; } } description "Priority of the port (0 ... 65535)"; } } // container lacp leaf bundle { junos:must "(!(".. .. .. ether-options 802.3ad"))"; junos:must-message "Member link cannot be a part of multiple aggregation group"; junos:must "(!(".. .. .. vlan-offload"))"; junos:must-message "ae child device vlan-offload is not allowed"; junos:must "(!(".. .. .. flow-control"))"; junos:must-message "Setting flow-control on ae child device is not allowed"; junos:must "(!(".. .. .. mtu"))"; junos:must-message "Setting mtu on ae child device is not allowed"; junos:must "(!(".. .. .. vlan-vci-tagging"))"; junos:must-message "ae child device vlan-vci-tagging is not allowed"; junos:must "(!(".. .. .. stacked-vlan-tagging"))"; junos:must-message "ae child device stacked-vlan-tagging is not allowed"; junos:must "(!(".. .. .. flexible-vlan-tagging"))"; junos:must-message "ae child device flexible-vlan-tagging is not allowed"; junos:must "(!(".. .. .. vlan-tagging"))"; junos:must-message "ae child device vlan-tagging is not allowed"; junos:must "(!(".. .. .. passive-monitor-mode"))"; junos:must-message "802.3ad not valid for passive-monitor-mode"; type union { type jt:interface-device; type string { pattern "<.*>|$.*"; } } description "Join an aggregated Ethernet interface"; } choice type { leaf primary { type empty; description "Primary interface for link-protection mode"; } leaf backup { type empty; description "Backup interface for link-protection mode"; } } // choice type } // container ieee-802.3ad container ethernet-switch-profile { description "Ethernet virtual LAN/media access control-level options"; uses apply-advanced; leaf-list tag-protocol-id { type string; ordered-by user; description "IEEE 802.1q Tag Protocol Identifier values for VLAN-tagged frames"; } container ethernet-policer-profile { description "Ethernet level CoS-based policer configuration"; uses apply-advanced; container ieee802.1-priority-map { presence "enable ieee802.1-priority-map"; status deprecated; description "Premium priority values for IEEE 802.1p bits"; uses apply-advanced; leaf-list premium { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 7"; } } ordered-by user; description "Premium policer priority map"; } } // container ieee802.1-priority-map container input-priority-map { description "Input policer priority map"; uses cos_policer_input_priority_map; } // container input-priority-map container output-priority-map { description "Output policer priority map"; uses cos_policer_output_priority_map; } // container output-priority-map list policer { key "name"; ordered-by user; description "Policer template definition"; uses cos_policer; } // list policer } // container ethernet-policer-profile container accept-from { status deprecated; description "Accept traffic from or to specified remote MAC"; uses apply-advanced; list mac-address { key "name"; description "Remote MAC"; uses mac_list; } // list mac-address } // container accept-from choice reject-the-rest-choice { leaf reject-the-rest { type empty; status deprecated; description "Accept traffic from only the specified MAC addresses"; } leaf no-reject-the-rest { type empty; status deprecated; description "Don't accept traffic from only the specified MAC addresses"; } } // choice reject-the-rest-choice leaf mac-learn-enable { type empty; description "Learn MAC addresses dynamically"; } } // container ethernet-switch-profile container mpls { description "MPLS options"; uses mpls_ifd_options; } // container mpls leaf ignore-l3-incompletes { type empty; description "Ignore L3 incomplete errors"; } leaf no-auto-mdix { type empty; description "Disable auto MDI/MDIX"; } leaf ieee-802-3az-eee { type empty; description "IEEE 802.3az Energy Efficient Ethernet(EEE)"; } leaf fec { type enumeration { enum "none" { value 0; description "FEC disabled"; } enum "fec91" { value 1; description "IEEE 802.3bj Clause 91, Reed-Solomon FEC (RS-FEC)"; } enum "fec74" { value 2; description "FEC74 enabled"; } enum "fec108" { value 3; description "IEEE 802.3by Clause 108, Reed-Solomon FEC (RS-FEC) on 25g links"; } } description "Forward Error Correction mode"; } } // container gigether-options container optics-options { description "Optics options"; uses apply-advanced; leaf wavelength { type enumeration { enum "1568.77" { value 0; description "1568.77 nm/191.1003 THz 50/100Ghz spacing"; } enum "1568.36" { value 1; description "1568.36 nm/191.15000 THz 6.25/12.5/50GHz spacing"; } enum "1568.31" { value 2; description "1568.31 nm/191.15625 THz 6.25GHz spacing"; } enum "1568.26" { value 3; description "1568.26 nm/191.16250 THz 6.25/12.5GHz spacing"; } enum "1568.21" { value 4; description "1568.21 nm/191.16875 THz 6.25GHz spacing"; } enum "1568.16" { value 5; description "1568.16 nm/191.17500 THz 6.25/12.5GHz spacing"; } enum "1568.11" { value 6; description "1568.11 nm/191.18125 THz 6.25GHz spacing"; } enum "1568.05" { value 7; description "1568.05 nm/191.18750 THz 6.25/12.5GHz spacing"; } enum "1568.00" { value 8; description "1568.00 nm/191.19375 THz 6.25GHz spacing"; } enum "1567.95" { value 9; description "1567.95 nm/191.20000 THz 6.25/12.5/50/100GHz spacing"; } enum "1567.90" { value 10; description "1567.90 nm/191.20625 THz 6.25GHz spacing"; } enum "1567.85" { value 11; description "1567.85 nm/191.21250 THz 6.25/12.5GHz spacing"; } enum "1567.80" { value 12; description "1567.80 nm/191.21875 THz 6.25GHz spacing"; } enum "1567.75" { value 13; description "1567.75 nm/191.22500 THz 6.25/12.5GHz spacing"; } enum "1567.70" { value 14; description "1567.70 nm/191.23125 THz 6.25GHz spacing"; } enum "1567.64" { value 15; description "1567.64 nm/191.23750 THz 6.25/12.5GHz spacing"; } enum "1567.59" { value 16; description "1567.59 nm/191.24375 THz 6.25GHz spacing"; } enum "1567.54" { value 17; description "1567.54 nm/191.25000 THz 6.25/12.5/50GHz spacing"; } enum "1567.49" { value 18; description "1567.49 nm/191.25625 THz 6.25GHz spacing"; } enum "1567.44" { value 19; description "1567.44 nm/191.26250 THz 6.25/12.5GHz spacing"; } enum "1567.39" { value 20; description "1567.39 nm/191.26875 THz 6.25GHz spacing"; } enum "1567.34" { value 21; description "1567.34 nm/191.27500 THz 6.25/12.5GHz spacing"; } enum "1567.29" { value 22; description "1567.29 nm/191.28125 THz 6.25GHz spacing"; } enum "1567.23" { value 23; description "1567.23 nm/191.28750 THz 6.25/12.5GHz spacing"; } enum "1567.18" { value 24; description "1567.18 nm/191.29375 THz 6.25GHz spacing"; } enum "1567.13" { value 25; description "1567.13 nm/191.30000 THz 6.25/12.5/50/100GHz spacing"; } enum "1567.08" { value 26; description "1567.08 nm/191.30625 THz 6.25GHz spacing"; } enum "1567.03" { value 27; description "1567.03 nm/191.31250 THz 6.25/12.5GHz spacing"; } enum "1566.98" { value 28; description "1566.98 nm/191.31875 THz 6.25GHz spacing"; } enum "1566.93" { value 29; description "1566.93 nm/191.32500 THz 6.25/12.5GHz spacing"; } enum "1566.88" { value 30; description "1566.88 nm/191.33125 THz 6.25GHz spacing"; } enum "1566.83" { value 31; description "1566.83 nm/191.33750 THz 6.25/12.5GHz spacing"; } enum "1566.77" { value 32; description "1566.77 nm/191.34375 THz 6.25GHz spacing"; } enum "1566.72" { value 33; description "1566.72 nm/191.35000 THz 6.25/12.5/50GHz spacing"; } enum "1566.67" { value 34; description "1566.67 nm/191.35625 THz 6.25GHz spacing"; } enum "1566.62" { value 35; description "1566.62 nm/191.36250 THz 6.25/12.5GHz spacing"; } enum "1566.57" { value 36; description "1566.57 nm/191.36875 THz 6.25GHz spacing"; } enum "1566.52" { value 37; description "1566.52 nm/191.37500 THz 6.25/12.5/75GHz spacing"; } enum "1566.47" { value 38; description "1566.47 nm/191.38125 THz 6.25GHz spacing"; } enum "1566.42" { value 39; description "1566.42 nm/191.38750 THz 6.25/12.5GHz spacing"; } enum "1566.36" { value 40; description "1566.36 nm/191.39375 THz 6.25GHz spacing"; } enum "1566.31" { value 41; description "1566.31 nm/191.40000 THz 6.25/12.5/50/100GHz spacing"; } enum "1566.26" { value 42; description "1566.26 nm/191.40625 THz 6.25GHz spacing"; } enum "1566.21" { value 43; description "1566.21 nm/191.41250 THz 6.25/12.5GHz spacing"; } enum "1566.16" { value 44; description "1566.16 nm/191.41875 THz 6.25GHz spacing"; } enum "1566.11" { value 45; description "1566.11 nm/191.42500 THz 6.25/12.5GHz spacing"; } enum "1566.06" { value 46; description "1566.06 nm/191.43125 THz 6.25GHz spacing"; } enum "1566.01" { value 47; description "1566.01 nm/191.43750 THz 6.25/12.5GHz spacing"; } enum "1565.96" { value 48; description "1565.96 nm/191.44375 THz 6.25GHz spacing"; } enum "1565.90" { value 49; description "1565.90 nm/191.45000 THz 6.25/12.5/50/75GHz spacing"; } enum "1565.85" { value 50; description "1565.85 nm/191.45625 THz 6.25GHz spacing"; } enum "1565.80" { value 51; description "1565.80 nm/191.46250 THz 6.25/12.5GHz spacing"; } enum "1565.75" { value 52; description "1565.75 nm/191.46875 THz 6.25GHz spacing"; } enum "1565.70" { value 53; description "1565.70 nm/191.47500 THz 6.25/12.5GHz spacing"; } enum "1565.65" { value 54; description "1565.65 nm/191.48125 THz 6.25GHz spacing"; } enum "1565.60" { value 55; description "1565.60 nm/191.48750 THz 6.25/12.5GHz spacing"; } enum "1565.55" { value 56; description "1565.55 nm/191.49375 THz 6.25GHz spacing"; } enum "1565.50" { value 57; description "1565.50 nm/191.50000 THz 6.25/12.5/50/100GHz spacing"; } enum "1565.44" { value 58; description "1565.44 nm/191.50625 THz 6.25GHz spacing"; } enum "1565.39" { value 59; description "1565.39 nm/191.51250 THz 6.25/12.5GHz spacing"; } enum "1565.34" { value 60; description "1565.34 nm/191.51875 THz 6.25GHz spacing"; } enum "1565.29" { value 61; description "1565.29 nm/191.52500 THz 6.25/12.5/75GHz spacing"; } enum "1565.24" { value 62; description "1565.24 nm/191.53125 THz 6.25GHz spacing"; } enum "1565.19" { value 63; description "1565.19 nm/191.53750 THz 6.25/12.5GHz spacing"; } enum "1565.14" { value 64; description "1565.14 nm/191.54375 THz 6.25GHz spacing"; } enum "1565.09" { value 65; description "1565.09 nm/191.55000 THz 6.25/12.5/50GHz spacing"; } enum "1565.04" { value 66; description "1565.04 nm/191.55625 THz 6.25GHz spacing"; } enum "1564.99" { value 67; description "1564.99 nm/191.56250 THz 6.25/12.5GHz spacing"; } enum "1564.93" { value 68; description "1564.93 nm/191.56875 THz 6.25GHz spacing"; } enum "1564.88" { value 69; description "1564.88 nm/191.57500 THz 6.25/12.5GHz spacing"; } enum "1564.83" { value 70; description "1564.83 nm/191.58125 THz 6.25GHz spacing"; } enum "1564.78" { value 71; description "1564.78 nm/191.58750 THz 6.25/12.5GHz spacing"; } enum "1564.73" { value 72; description "1564.73 nm/191.59375 THz 6.25GHz spacing"; } enum "1564.68" { value 73; description "1564.68 nm/191.60000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1564.63" { value 74; description "1564.63 nm/191.60625 THz 6.25GHz spacing"; } enum "1564.58" { value 75; description "1564.58 nm/191.61250 THz 6.25/12.5GHz spacing"; } enum "1564.53" { value 76; description "1564.53 nm/191.61875 THz 6.25GHz spacing"; } enum "1564.47" { value 77; description "1564.47 nm/191.62500 THz 6.25/12.5GHz spacing"; } enum "1564.42" { value 78; description "1564.42 nm/191.63125 THz 6.25GHz spacing"; } enum "1564.37" { value 79; description "1564.37 nm/191.63750 THz 6.25/12.5GHz spacing"; } enum "1564.32" { value 80; description "1564.32 nm/191.64375 THz 6.25GHz spacing"; } enum "1564.27" { value 81; description "1564.27 nm/191.65000 THz 6.25/12.5/50GHz spacing"; } enum "1564.22" { value 82; description "1564.22 nm/191.65625 THz 6.25GHz spacing"; } enum "1564.17" { value 83; description "1564.17 nm/191.66250 THz 6.25/12.5GHz spacing"; } enum "1564.12" { value 84; description "1564.12 nm/191.66875 THz 6.25GHz spacing"; } enum "1564.07" { value 85; description "1564.07 nm/191.67500 THz 6.25/12.5/75GHz spacing"; } enum "1564.02" { value 86; description "1564.02 nm/191.68125 THz 6.25GHz spacing"; } enum "1563.96" { value 87; description "1563.96 nm/191.68750 THz 6.25/12.5GHz spacing"; } enum "1563.91" { value 88; description "1563.91 nm/191.69375 THz 6.25GHz spacing"; } enum "1563.86" { value 89; description "1563.86 nm/191.70000 THz 6.25/12.5/50/100GHz spacing"; } enum "1563.81" { value 90; description "1563.81 nm/191.70625 THz 6.25GHz spacing"; } enum "1563.76" { value 91; description "1563.76 nm/191.71250 THz 6.25/12.5GHz spacing"; } enum "1563.71" { value 92; description "1563.71 nm/191.71875 THz 6.25GHz spacing"; } enum "1563.66" { value 93; description "1563.66 nm/191.72500 THz 6.25/12.5GHz spacing"; } enum "1563.61" { value 94; description "1563.61 nm/191.73125 THz 6.25GHz spacing"; } enum "1563.56" { value 95; description "1563.56 nm/191.73750 THz 6.25/12.5GHz spacing"; } enum "1563.51" { value 96; description "1563.51 nm/191.74375 THz 6.25GHz spacing"; } enum "1563.45" { value 97; description "1563.45 nm/191.75000 THz 6.25/12.5/50/75GHz spacing"; } enum "1563.40" { value 98; description "1563.40 nm/191.75625 THz 6.25GHz spacing"; } enum "1563.35" { value 99; description "1563.35 nm/191.76250 THz 6.25/12.5GHz spacing"; } enum "1563.30" { value 100; description "1563.30 nm/191.76875 THz 6.25GHz spacing"; } enum "1563.25" { value 101; description "1563.25 nm/191.77500 THz 6.25/12.5GHz spacing"; } enum "1563.20" { value 102; description "1563.20 nm/191.78125 THz 6.25GHz spacing"; } enum "1563.15" { value 103; description "1563.15 nm/191.78750 THz 6.25/12.5GHz spacing"; } enum "1563.10" { value 104; description "1563.10 nm/191.79375 THz 6.25GHz spacing"; } enum "1563.05" { value 105; description "1563.05 nm/191.80000 THz 6.25/12.5/50/100GHz spacing"; } enum "1563.00" { value 106; description "1563.00 nm/191.80625 THz 6.25GHz spacing"; } enum "1562.95" { value 107; description "1562.95 nm/191.81250 THz 6.25/12.5GHz spacing"; } enum "1562.89" { value 108; description "1562.89 nm/191.81875 THz 6.25GHz spacing"; } enum "1562.84" { value 109; description "1562.84 nm/191.82500 THz 6.25/12.5/75GHz spacing"; } enum "1562.79" { value 110; description "1562.79 nm/191.83125 THz 6.25GHz spacing"; } enum "1562.74" { value 111; description "1562.74 nm/191.83750 THz 6.25/12.5GHz spacing"; } enum "1562.69" { value 112; description "1562.69 nm/191.84375 THz 6.25GHz spacing"; } enum "1562.64" { value 113; description "1562.64 nm/191.85000 THz 6.25/12.5/50GHz spacing"; } enum "1562.59" { value 114; description "1562.59 nm/191.85625 THz 6.25GHz spacing"; } enum "1562.54" { value 115; description "1562.54 nm/191.86250 THz 6.25/12.5GHz spacing"; } enum "1562.49" { value 116; description "1562.49 nm/191.86875 THz 6.25GHz spacing"; } enum "1562.44" { value 117; description "1562.44 nm/191.87500 THz 6.25/12.5GHz spacing"; } enum "1562.39" { value 118; description "1562.39 nm/191.88125 THz 6.25GHz spacing"; } enum "1562.33" { value 119; description "1562.33 nm/191.88750 THz 6.25/12.5GHz spacing"; } enum "1562.28" { value 120; description "1562.28 nm/191.89375 THz 6.25GHz spacing"; } enum "1562.23" { value 121; description "1562.23 nm/191.90000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1562.18" { value 122; description "1562.18 nm/191.90625 THz 6.25GHz spacing"; } enum "1562.13" { value 123; description "1562.13 nm/191.91250 THz 6.25/12.5GHz spacing"; } enum "1562.08" { value 124; description "1562.08 nm/191.91875 THz 6.25GHz spacing"; } enum "1562.03" { value 125; description "1562.03 nm/191.92500 THz 6.25/12.5GHz spacing"; } enum "1561.98" { value 126; description "1561.98 nm/191.93125 THz 6.25GHz spacing"; } enum "1561.93" { value 127; description "1561.93 nm/191.93750 THz 6.25/12.5GHz spacing"; } enum "1561.88" { value 128; description "1561.88 nm/191.94375 THz 6.25GHz spacing"; } enum "1561.83" { value 129; description "1561.83 nm/191.95000 THz 6.25/12.5/50GHz spacing"; } enum "1561.77" { value 130; description "1561.77 nm/191.95625 THz 6.25GHz spacing"; } enum "1561.72" { value 131; description "1561.72 nm/191.96250 THz 6.25/12.5GHz spacing"; } enum "1561.67" { value 132; description "1561.67 nm/191.96875 THz 6.25GHz spacing"; } enum "1561.62" { value 133; description "1561.62 nm/191.97500 THz 6.25/12.5/75GHz spacing"; } enum "1561.57" { value 134; description "1561.57 nm/191.98125 THz 6.25GHz spacing"; } enum "1561.52" { value 135; description "1561.52 nm/191.98750 THz 6.25/12.5GHz spacing"; } enum "1561.47" { value 136; description "1561.47 nm/191.99375 THz 6.25GHz spacing"; } enum "1561.42" { value 137; description "1561.42 nm/192.00000 THz 6.25/12.5/50/100GHz spacing"; } enum "1561.37" { value 138; description "1561.37 nm/192.00625 THz 6.25GHz spacing"; } enum "1561.32" { value 139; description "1561.32 nm/192.01250 THz 6.25/12.5GHz spacing"; } enum "1561.27" { value 140; description "1561.27 nm/192.01875 THz 6.25GHz spacing"; } enum "1561.22" { value 141; description "1561.22 nm/192.02500 THz 6.25/12.5GHz spacing"; } enum "1561.16" { value 142; description "1561.16 nm/192.03125 THz 6.25GHz spacing"; } enum "1561.11" { value 143; description "1561.11 nm/192.03750 THz 6.25/12.5GHz spacing"; } enum "1561.06" { value 144; description "1561.06 nm/192.04375 THz 6.25GHz spacing"; } enum "1561.01" { value 145; description "1561.01 nm/192.05000 THz 6.25/12.5/50G/75Hz spacing"; } enum "1560.96" { value 146; description "1560.96 nm/192.05625 THz 6.25GHz spacing"; } enum "1560.91" { value 147; description "1560.91 nm/192.06250 THz 6.25/12.5GHz spacing"; } enum "1560.86" { value 148; description "1560.86 nm/192.06875 THz 6.25GHz spacing"; } enum "1560.81" { value 149; description "1560.81 nm/192.07500 THz 6.25/12.5GHz spacing"; } enum "1560.76" { value 150; description "1560.76 nm/192.08125 THz 6.25GHz spacing"; } enum "1560.71" { value 151; description "1560.71 nm/192.08750 THz 6.25/12.5GHz spacing"; } enum "1560.66" { value 152; description "1560.66 nm/192.09375 THz 6.25GHz spacing"; } enum "1560.61" { value 153; description "1560.61 nm/192.10000 THz 6.25/12.5/50/100GHz spacing"; } enum "1560.56" { value 154; description "1560.56 nm/192.10625 THz 6.25GHz spacing"; } enum "1560.50" { value 155; description "1560.50 nm/192.11250 THz 6.25/12.5GHz spacing"; } enum "1560.45" { value 156; description "1560.45 nm/192.11875 THz 6.25GHz spacing"; } enum "1560.40" { value 157; description "1560.40 nm/192.12500 THz 6.25/12.5/75GHz spacing"; } enum "1560.35" { value 158; description "1560.35 nm/192.13125 THz 6.25GHz spacing"; } enum "1560.30" { value 159; description "1560.30 nm/192.13750 THz 6.25/12.5GHz spacing"; } enum "1560.25" { value 160; description "1560.25 nm/192.14375 THz 6.25GHz spacing"; } enum "1560.20" { value 161; description "1560.20 nm/192.15000 THz 6.25/12.5/50GHz spacing"; } enum "1560.15" { value 162; description "1560.15 nm/192.15625 THz 6.25GHz spacing"; } enum "1560.10" { value 163; description "1560.10 nm/192.16250 THz 6.25/12.5GHz spacing"; } enum "1560.05" { value 164; description "1560.05 nm/192.16875 THz 6.25GHz spacing"; } enum "1560.00" { value 165; description "1560.00 nm/192.17500 THz 6.25/12.5GHz spacing"; } enum "1559.95" { value 166; description "1559.95 nm/192.18125 THz 6.25GHz spacing"; } enum "1559.90" { value 167; description "1559.90 nm/192.18750 THz 6.25/12.5GHz spacing"; } enum "1559.84" { value 168; description "1559.84 nm/192.19375 THz 6.25GHz spacing"; } enum "1559.79" { value 169; description "1559.79 nm/192.20000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1559.74" { value 170; description "1559.74 nm/192.20625 THz 6.25GHz spacing"; } enum "1559.69" { value 171; description "1559.69 nm/192.21250 THz 6.25/12.5GHz spacing"; } enum "1559.64" { value 172; description "1559.64 nm/192.21875 THz 6.25GHz spacing"; } enum "1559.59" { value 173; description "1559.59 nm/192.22500 THz 6.25/12.5GHz spacing"; } enum "1559.54" { value 174; description "1559.54 nm/192.23125 THz 6.25GHz spacing"; } enum "1559.49" { value 175; description "1559.49 nm/192.23750 THz 6.25/12.5GHz spacing"; } enum "1559.44" { value 176; description "1559.44 nm/192.24375 THz 6.25GHz spacing"; } enum "1559.39" { value 177; description "1559.39 nm/192.25000 THz 6.25/12.5/50GHz spacing"; } enum "1559.34" { value 178; description "1559.34 nm/192.25625 THz 6.25GHz spacing"; } enum "1559.29" { value 179; description "1559.29 nm/192.26250 THz 6.25/12.5GHz spacing"; } enum "1559.24" { value 180; description "1559.24 nm/192.26875 THz 6.25GHz spacing"; } enum "1559.19" { value 181; description "1559.19 nm/192.27500 THz 6.25/12.5/75GHz spacing"; } enum "1559.14" { value 182; description "1559.14 nm/192.28125 THz 6.25GHz spacing"; } enum "1559.08" { value 183; description "1559.08 nm/192.28750 THz 6.25/12.5GHz spacing"; } enum "1559.03" { value 184; description "1559.03 nm/192.29375 THz 6.25GHz spacing"; } enum "1558.98" { value 185; description "1558.98 nm/192.30000 THz 6.25/12.5/50/100GHz spacing"; } enum "1558.93" { value 186; description "1558.93 nm/192.30625 THz 6.25GHz spacing"; } enum "1558.88" { value 187; description "1558.88 nm/192.31250 THz 6.25/12.5GHz spacing"; } enum "1558.83" { value 188; description "1558.83 nm/192.31875 THz 6.25GHz spacing"; } enum "1558.78" { value 189; description "1558.78 nm/192.32500 THz 6.25/12.5GHz spacing"; } enum "1558.73" { value 190; description "1558.73 nm/192.33125 THz 6.25GHz spacing"; } enum "1558.68" { value 191; description "1558.68 nm/192.33750 THz 6.25/12.5GHz spacing"; } enum "1558.63" { value 192; description "1558.63 nm/192.34375 THz 6.25GHz spacing"; } enum "1558.58" { value 193; description "1558.58 nm/192.35000 THz 6.25/12.5/50/75GHz spacing"; } enum "1558.53" { value 194; description "1558.53 nm/192.35625 THz 6.25GHz spacing"; } enum "1558.48" { value 195; description "1558.48 nm/192.36250 THz 6.25/12.5GHz spacing"; } enum "1558.43" { value 196; description "1558.43 nm/192.36875 THz 6.25GHz spacing"; } enum "1558.38" { value 197; description "1558.38 nm/192.37500 THz 6.25/12.5GHz spacing"; } enum "1558.32" { value 198; description "1558.32 nm/192.38125 THz 6.25GHz spacing"; } enum "1558.27" { value 199; description "1558.27 nm/192.38750 THz 6.25/12.5GHz spacing"; } enum "1558.22" { value 200; description "1558.22 nm/192.39375 THz 6.25GHz spacing"; } enum "1558.17" { value 201; description "1558.17 nm/192.40000 THz 6.25/12.5/50/100GHz spacing"; } enum "1558.12" { value 202; description "1558.12 nm/192.40625 THz 6.25GHz spacing"; } enum "1558.07" { value 203; description "1558.07 nm/192.41250 THz 6.25/12.5GHz spacing"; } enum "1558.02" { value 204; description "1558.02 nm/192.41875 THz 6.25GHz spacing"; } enum "1557.97" { value 205; description "1557.97 nm/192.42500 THz 6.25/12.5/75GHz spacing"; } enum "1557.92" { value 206; description "1557.92 nm/192.43125 THz 6.25GHz spacing"; } enum "1557.87" { value 207; description "1557.87 nm/192.43750 THz 6.25/12.5GHz spacing"; } enum "1557.82" { value 208; description "1557.82 nm/192.44375 THz 6.25GHz spacing"; } enum "1557.77" { value 209; description "1557.77 nm/192.45000 THz 6.25/12.5/50GHz spacing"; } enum "1557.72" { value 210; description "1557.72 nm/192.45625 THz 6.25GHz spacing"; } enum "1557.67" { value 211; description "1557.67 nm/192.46250 THz 6.25/12.5GHz spacing"; } enum "1557.62" { value 212; description "1557.62 nm/192.46875 THz 6.25GHz spacing"; } enum "1557.57" { value 213; description "1557.57 nm/192.47500 THz 6.25/12.5GHz spacing"; } enum "1557.52" { value 214; description "1557.52 nm/192.48125 THz 6.25GHz spacing"; } enum "1557.46" { value 215; description "1557.46 nm/192.48750 THz 6.25/12.5GHz spacing"; } enum "1557.41" { value 216; description "1557.41 nm/192.49375 THz 6.25GHz spacing"; } enum "1557.36" { value 217; description "1557.36 nm/192.50000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1557.31" { value 218; description "1557.31 nm/192.50625 THz 6.25GHz spacing"; } enum "1557.26" { value 219; description "1557.26 nm/192.51250 THz 6.25/12.5GHz spacing"; } enum "1557.21" { value 220; description "1557.21 nm/192.51875 THz 6.25GHz spacing"; } enum "1557.16" { value 221; description "1557.16 nm/192.52500 THz 6.25/12.5GHz spacing"; } enum "1557.11" { value 222; description "1557.11 nm/192.53125 THz 6.25GHz spacing"; } enum "1557.06" { value 223; description "1557.06 nm/192.53750 THz 6.25/12.5GHz spacing"; } enum "1557.01" { value 224; description "1557.01 nm/192.54375 THz 6.25GHz spacing"; } enum "1556.96" { value 225; description "1556.96 nm/192.55000 THz 6.25/12.5/50GHz spacing"; } enum "1556.91" { value 226; description "1556.91 nm/192.55625 THz 6.25GHz spacing"; } enum "1556.86" { value 227; description "1556.86 nm/192.56250 THz 6.25/12.5GHz spacing"; } enum "1556.81" { value 228; description "1556.81 nm/192.56875 THz 6.25GHz spacing"; } enum "1556.76" { value 229; description "1556.76 nm/192.57500 THz 6.25/12.5/75GHz spacing"; } enum "1556.71" { value 230; description "1556.71 nm/192.58125 THz 6.25GHz spacing"; } enum "1556.66" { value 231; description "1556.66 nm/192.58750 THz 6.25/12.5GHz spacing"; } enum "1556.61" { value 232; description "1556.61 nm/192.59375 THz 6.25GHz spacing"; } enum "1556.55" { value 233; description "1556.55 nm/192.60000 THz 6.25/12.5/50/100GHz spacing"; } enum "1556.50" { value 234; description "1556.50 nm/192.60625 THz 6.25GHz spacing"; } enum "1556.45" { value 235; description "1556.45 nm/192.61250 THz 6.25/12.5GHz spacing"; } enum "1556.40" { value 236; description "1556.40 nm/192.61875 THz 6.25GHz spacing"; } enum "1556.35" { value 237; description "1556.35 nm/192.62500 THz 6.25/12.5GHz spacing"; } enum "1556.30" { value 238; description "1556.30 nm/192.63125 THz 6.25GHz spacing"; } enum "1556.25" { value 239; description "1556.25 nm/192.63750 THz 6.25/12.5GHz spacing"; } enum "1556.20" { value 240; description "1556.20 nm/192.64375 THz 6.25GHz spacing"; } enum "1556.15" { value 241; description "1556.15 nm/192.65000 THz 6.25/12.5/50/75GHz spacing"; } enum "1556.10" { value 242; description "1556.10 nm/192.65625 THz 6.25GHz spacing"; } enum "1556.05" { value 243; description "1556.05 nm/192.66250 THz 6.25/12.5GHz spacing"; } enum "1556.00" { value 244; description "1556.00 nm/192.66875 THz 6.25GHz spacing"; } enum "1555.95" { value 245; description "1555.95 nm/192.67500 THz 6.25/12.5GHz spacing"; } enum "1555.90" { value 246; description "1555.90 nm/192.68125 THz 6.25GHz spacing"; } enum "1555.85" { value 247; description "1555.85 nm/192.68750 THz 6.25/12.5GHz spacing"; } enum "1555.80" { value 248; description "1555.80 nm/192.69375 THz 6.25GHz spacing"; } enum "1555.75" { value 249; description "1555.75 nm/192.70000 THz 6.25/12.5/50/100GHz spacing"; } enum "1555.70" { value 250; description "1555.70 nm/192.70625 THz 6.25GHz spacing"; } enum "1555.65" { value 251; description "1555.65 nm/192.71250 THz 6.25/12.5GHz spacing"; } enum "1555.60" { value 252; description "1555.60 nm/192.71875 THz 6.25GHz spacing"; } enum "1555.55" { value 253; description "1555.55 nm/192.72500 THz 6.25/12.5/75GHz spacing"; } enum "1555.49" { value 254; description "1555.49 nm/192.73125 THz 6.25GHz spacing"; } enum "1555.44" { value 255; description "1555.44 nm/192.73750 THz 6.25/12.5GHz spacing"; } enum "1555.39" { value 256; description "1555.39 nm/192.74375 THz 6.25GHz spacing"; } enum "1555.34" { value 257; description "1555.34 nm/192.75000 THz 6.25/12.5/50GHz spacing"; } enum "1555.29" { value 258; description "1555.29 nm/192.75625 THz 6.25GHz spacing"; } enum "1555.24" { value 259; description "1555.24 nm/192.76250 THz 6.25/12.5GHz spacing"; } enum "1555.19" { value 260; description "1555.19 nm/192.76875 THz 6.25GHz spacing"; } enum "1555.14" { value 261; description "1555.14 nm/192.77500 THz 6.25/12.5GHz spacing"; } enum "1555.09" { value 262; description "1555.09 nm/192.78125 THz 6.25GHz spacing"; } enum "1555.04" { value 263; description "1555.04 nm/192.78750 THz 6.25/12.5GHz spacing"; } enum "1554.99" { value 264; description "1554.99 nm/192.79375 THz 6.25GHz spacing"; } enum "1554.94" { value 265; description "1554.94 nm/192.80000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1554.89" { value 266; description "1554.89 nm/192.80625 THz 6.25GHz spacing"; } enum "1554.84" { value 267; description "1554.84 nm/192.81250 THz 6.25/12.5GHz spacing"; } enum "1554.79" { value 268; description "1554.79 nm/192.81875 THz 6.25GHz spacing"; } enum "1554.74" { value 269; description "1554.74 nm/192.82500 THz 6.25/12.5GHz spacing"; } enum "1554.69" { value 270; description "1554.69 nm/192.83125 THz 6.25GHz spacing"; } enum "1554.64" { value 271; description "1554.64 nm/192.83750 THz 6.25/12.5GHz spacing"; } enum "1554.59" { value 272; description "1554.59 nm/192.84375 THz 6.25GHz spacing"; } enum "1554.54" { value 273; description "1554.54 nm/192.85000 THz 6.25/12.5/50GHz spacing"; } enum "1554.49" { value 274; description "1554.49 nm/192.85625 THz 6.25GHz spacing"; } enum "1554.44" { value 275; description "1554.44 nm/192.86250 THz 6.25/12.5GHz spacing"; } enum "1554.39" { value 276; description "1554.39 nm/192.86875 THz 6.25GHz spacing"; } enum "1554.34" { value 277; description "1554.34 nm/192.87500 THz 6.25/12.5/75GHz spacing"; } enum "1554.29" { value 278; description "1554.29 nm/192.88125 THz 6.25GHz spacing"; } enum "1554.23" { value 279; description "1554.23 nm/192.88750 THz 6.25/12.5GHz spacing"; } enum "1554.18" { value 280; description "1554.18 nm/192.89375 THz 6.25GHz spacing"; } enum "1554.13" { value 281; description "1554.13 nm/192.90000 THz 6.25/12.5/50/100GHz spacing"; } enum "1554.08" { value 282; description "1554.08 nm/192.90625 THz 6.25GHz spacing"; } enum "1554.03" { value 283; description "1554.03 nm/192.91250 THz 6.25/12.5GHz spacing"; } enum "1553.98" { value 284; description "1553.98 nm/192.91875 THz 6.25GHz spacing"; } enum "1553.93" { value 285; description "1553.93 nm/192.92500 THz 6.25/12.5GHz spacing"; } enum "1553.88" { value 286; description "1553.88 nm/192.93125 THz 6.25GHz spacing"; } enum "1553.83" { value 287; description "1553.83 nm/192.93750 THz 6.25/12.5GHz spacing"; } enum "1553.78" { value 288; description "1553.78 nm/192.94375 THz 6.25GHz spacing"; } enum "1553.73" { value 289; description "1553.73 nm/192.95000 THz 6.25/12.5/50/75GHz spacing"; } enum "1553.68" { value 290; description "1553.68 nm/192.95625 THz 6.25GHz spacing"; } enum "1553.63" { value 291; description "1553.63 nm/192.96250 THz 6.25/12.5GHz spacing"; } enum "1553.58" { value 292; description "1553.58 nm/192.96875 THz 6.25GHz spacing"; } enum "1553.53" { value 293; description "1553.53 nm/192.97500 THz 6.25/12.5GHz spacing"; } enum "1553.48" { value 294; description "1553.48 nm/192.98125 THz 6.25GHz spacing"; } enum "1553.43" { value 295; description "1553.43 nm/192.98750 THz 6.25/12.5GHz spacing"; } enum "1553.38" { value 296; description "1553.38 nm/192.99375 THz 6.25GHz spacing"; } enum "1553.33" { value 297; description "1553.33 nm/193.00000 THz 6.25/12.5/50/100GHz spacing"; } enum "1553.28" { value 298; description "1553.28 nm/193.00625 THz 6.25GHz spacing"; } enum "1553.23" { value 299; description "1553.23 nm/193.01250 THz 6.25/12.5GHz spacing"; } enum "1553.18" { value 300; description "1553.18 nm/193.01875 THz 6.25GHz spacing"; } enum "1553.13" { value 301; description "1553.13 nm/193.02500 THz 6.25/12.5/75GHz spacing"; } enum "1553.08" { value 302; description "1553.08 nm/193.03125 THz 6.25GHz spacing"; } enum "1553.03" { value 303; description "1553.03 nm/193.03750 THz 6.25/12.5GHz spacing"; } enum "1552.98" { value 304; description "1552.98 nm/193.04375 THz 6.25GHz spacing"; } enum "1552.93" { value 305; description "1552.93 nm/193.05000 THz 6.25/12.5/50GHz spacing"; } enum "1552.88" { value 306; description "1552.88 nm/193.05625 THz 6.25GHz spacing"; } enum "1552.83" { value 307; description "1552.83 nm/193.06250 THz 6.25/12.5GHz spacing"; } enum "1552.78" { value 308; description "1552.78 nm/193.06875 THz 6.25GHz spacing"; } enum "1552.73" { value 309; description "1552.73 nm/193.07500 THz 6.25/12.5GHz spacing"; } enum "1552.68" { value 310; description "1552.68 nm/193.08125 THz 6.25GHz spacing"; } enum "1552.62" { value 311; description "1552.62 nm/193.08750 THz 6.25/12.5GHz spacing"; } enum "1552.57" { value 312; description "1552.57 nm/193.09375 THz 6.25GHz spacing"; } enum "1552.52" { value 313; description "1552.52 nm/193.10000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1552.47" { value 314; description "1552.47 nm/193.10625 THz 6.25GHz spacing"; } enum "1552.42" { value 315; description "1552.42 nm/193.11250 THz 6.25/12.5GHz spacing"; } enum "1552.37" { value 316; description "1552.37 nm/193.11875 THz 6.25GHz spacing"; } enum "1552.32" { value 317; description "1552.32 nm/193.12500 THz 6.25/12.5GHz spacing"; } enum "1552.27" { value 318; description "1552.27 nm/193.13125 THz 6.25GHz spacing"; } enum "1552.22" { value 319; description "1552.22 nm/193.13750 THz 6.25/12.5GHz spacing"; } enum "1552.17" { value 320; description "1552.17 nm/193.14375 THz 6.25GHz spacing"; } enum "1552.12" { value 321; description "1552.12 nm/193.15000 THz 6.25/12.5/50GHz spacing"; } enum "1552.07" { value 322; description "1552.07 nm/193.15625 THz 6.25GHz spacing"; } enum "1552.02" { value 323; description "1552.02 nm/193.16250 THz 6.25/12.5GHz spacing"; } enum "1551.97" { value 324; description "1551.97 nm/193.16875 THz 6.25GHz spacing"; } enum "1551.92" { value 325; description "1551.92 nm/193.17500 THz 6.25/12.5/75GHz spacing"; } enum "1551.87" { value 326; description "1551.87 nm/193.18125 THz 6.25GHz spacing"; } enum "1551.82" { value 327; description "1551.82 nm/193.18750 THz 6.25/12.5GHz spacing"; } enum "1551.77" { value 328; description "1551.77 nm/193.19375 THz 6.25GHz spacing"; } enum "1551.72" { value 329; description "1551.72 nm/193.20000 THz 6.25/12.5/50/100GHz spacing"; } enum "1551.67" { value 330; description "1551.67 nm/193.20625 THz 6.25GHz spacing"; } enum "1551.62" { value 331; description "1551.62 nm/193.21250 THz 6.25/12.5GHz spacing"; } enum "1551.57" { value 332; description "1551.57 nm/193.21875 THz 6.25GHz spacing"; } enum "1551.52" { value 333; description "1551.52 nm/193.22500 THz 6.25/12.5GHz spacing"; } enum "1551.47" { value 334; description "1551.47 nm/193.23125 THz 6.25GHz spacing"; } enum "1551.42" { value 335; description "1551.42 nm/193.23750 THz 6.25/12.5GHz spacing"; } enum "1551.37" { value 336; description "1551.37 nm/193.24375 THz 6.25GHz spacing"; } enum "1551.32" { value 337; description "1551.32 nm/193.25000 THz 6.25/12.5/50/75GHz spacing"; } enum "1551.27" { value 338; description "1551.27 nm/193.25625 THz 6.25GHz spacing"; } enum "1551.22" { value 339; description "1551.22 nm/193.26250 THz 6.25/12.5GHz spacing"; } enum "1551.17" { value 340; description "1551.17 nm/193.26875 THz 6.25GHz spacing"; } enum "1551.12" { value 341; description "1551.12 nm/193.27500 THz 6.25/12.5GHz spacing"; } enum "1551.07" { value 342; description "1551.07 nm/193.28125 THz 6.25GHz spacing"; } enum "1551.02" { value 343; description "1551.02 nm/193.28750 THz 6.25/12.5GHz spacing"; } enum "1550.97" { value 344; description "1550.97 nm/193.29375 THz 6.25GHz spacing"; } enum "1550.92" { value 345; description "1550.92 nm/193.30000 THz 6.25/12.5/50/100GHz spacing"; } enum "1550.87" { value 346; description "1550.87 nm/193.30625 THz 6.25GHz spacing"; } enum "1550.82" { value 347; description "1550.82 nm/193.31250 THz 6.25/12.5GHz spacing"; } enum "1550.77" { value 348; description "1550.77 nm/193.31875 THz 6.25GHz spacing"; } enum "1550.72" { value 349; description "1550.72 nm/193.32500 THz 6.25/12.5/75GHz spacing"; } enum "1550.67" { value 350; description "1550.67 nm/193.33125 THz 6.25GHz spacing"; } enum "1550.62" { value 351; description "1550.62 nm/193.33750 THz 6.25/12.5GHz spacing"; } enum "1550.57" { value 352; description "1550.57 nm/193.34375 THz 6.25GHz spacing"; } enum "1550.52" { value 353; description "1550.52 nm/193.35000 THz 6.25/12.5/50GHz spacing"; } enum "1550.47" { value 354; description "1550.47 nm/193.35625 THz 6.25GHz spacing"; } enum "1550.42" { value 355; description "1550.42 nm/193.36250 THz 6.25/12.5GHz spacing"; } enum "1550.37" { value 356; description "1550.37 nm/193.36875 THz 6.25GHz spacing"; } enum "1550.32" { value 357; description "1550.32 nm/193.37500 THz 6.25/12.5GHz spacing"; } enum "1550.27" { value 358; description "1550.27 nm/193.38125 THz 6.25GHz spacing"; } enum "1550.22" { value 359; description "1550.22 nm/193.38750 THz 6.25/12.5GHz spacing"; } enum "1550.17" { value 360; description "1550.17 nm/193.39375 THz 6.25GHz spacing"; } enum "1550.12" { value 361; description "1550.12 nm/193.40000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1550.07" { value 362; description "1550.07 nm/193.40625 THz 6.25GHz spacing"; } enum "1550.02" { value 363; description "1550.02 nm/193.41250 THz 6.25/12.5GHz spacing"; } enum "1549.97" { value 364; description "1549.97 nm/193.41875 THz 6.25GHz spacing"; } enum "1549.92" { value 365; description "1549.92 nm/193.42500 THz 6.25/12.5GHz spacing"; } enum "1549.87" { value 366; description "1549.87 nm/193.43125 THz 6.25GHz spacing"; } enum "1549.82" { value 367; description "1549.82 nm/193.43750 THz 6.25/12.5GHz spacing"; } enum "1549.77" { value 368; description "1549.77 nm/193.44375 THz 6.25GHz spacing"; } enum "1549.72" { value 369; description "1549.72 nm/193.45000 THz 6.25/12.5/50GHz spacing"; } enum "1549.67" { value 370; description "1549.67 nm/193.45625 THz 6.25GHz spacing"; } enum "1549.62" { value 371; description "1549.62 nm/193.46250 THz 6.25/12.5GHz spacing"; } enum "1549.57" { value 372; description "1549.57 nm/193.46875 THz 6.25GHz spacing"; } enum "1549.52" { value 373; description "1549.52 nm/193.47500 THz 6.25/12.5/75GHz spacing"; } enum "1549.47" { value 374; description "1549.47 nm/193.48125 THz 6.25GHz spacing"; } enum "1549.42" { value 375; description "1549.42 nm/193.48750 THz 6.25/12.5GHz spacing"; } enum "1549.37" { value 376; description "1549.37 nm/193.49375 THz 6.25GHz spacing"; } enum "1549.32" { value 377; description "1549.32 nm/193.50000 THz 6.25/12.5/50/100GHz spacing"; } enum "1549.26" { value 378; description "1549.26 nm/193.50625 THz 6.25GHz spacing"; } enum "1549.21" { value 379; description "1549.21 nm/193.51250 THz 6.25/12.5GHz spacing"; } enum "1549.16" { value 380; description "1549.16 nm/193.51875 THz 6.25GHz spacing"; } enum "1549.11" { value 381; description "1549.11 nm/193.52500 THz 6.25/12.5GHz spacing"; } enum "1549.06" { value 382; description "1549.06 nm/193.53125 THz 6.25GHz spacing"; } enum "1549.01" { value 383; description "1549.01 nm/193.53750 THz 6.25/12.5GHz spacing"; } enum "1548.96" { value 384; description "1548.96 nm/193.54375 THz 6.25GHz spacing"; } enum "1548.91" { value 385; description "1548.91 nm/193.55000 THz 6.25/12.5/50G/75Hz spacing"; } enum "1548.86" { value 386; description "1548.86 nm/193.55625 THz 6.25GHz spacing"; } enum "1548.81" { value 387; description "1548.81 nm/193.56250 THz 6.25/12.5GHz spacing"; } enum "1548.76" { value 388; description "1548.76 nm/193.56875 THz 6.25GHz spacing"; } enum "1548.71" { value 389; description "1548.71 nm/193.57500 THz 6.25/12.5GHz spacing"; } enum "1548.66" { value 390; description "1548.66 nm/193.58125 THz 6.25GHz spacing"; } enum "1548.61" { value 391; description "1548.61 nm/193.58750 THz 6.25/12.5GHz spacing"; } enum "1548.56" { value 392; description "1548.56 nm/193.59375 THz 6.25GHz spacing"; } enum "1548.51" { value 393; description "1548.51 nm/193.60000 THz 6.25/12.5/50/100GHz spacing"; } enum "1548.46" { value 394; description "1548.46 nm/193.60625 THz 6.25GHz spacing"; } enum "1548.41" { value 395; description "1548.41 nm/193.61250 THz 6.25/12.5GHz spacing"; } enum "1548.36" { value 396; description "1548.36 nm/193.61875 THz 6.25GHz spacing"; } enum "1548.31" { value 397; description "1548.31 nm/193.62500 THz 6.25/12.5/75GHz spacing"; } enum "1548.26" { value 398; description "1548.26 nm/193.63125 THz 6.25GHz spacing"; } enum "1548.21" { value 399; description "1548.21 nm/193.63750 THz 6.25/12.5GHz spacing"; } enum "1548.16" { value 400; description "1548.16 nm/193.64375 THz 6.25GHz spacing"; } enum "1548.11" { value 401; description "1548.11 nm/193.65000 THz 6.25/12.5/50GHz spacing"; } enum "1548.06" { value 402; description "1548.06 nm/193.65625 THz 6.25GHz spacing"; } enum "1548.02" { value 403; description "1548.02 nm/193.66250 THz 6.25/12.5GHz spacing"; } enum "1547.97" { value 404; description "1547.97 nm/193.66875 THz 6.25GHz spacing"; } enum "1547.92" { value 405; description "1547.92 nm/193.67500 THz 6.25/12.5GHz spacing"; } enum "1547.87" { value 406; description "1547.87 nm/193.68125 THz 6.25GHz spacing"; } enum "1547.82" { value 407; description "1547.82 nm/193.68750 THz 6.25/12.5GHz spacing"; } enum "1547.77" { value 408; description "1547.77 nm/193.69375 THz 6.25GHz spacing"; } enum "1547.72" { value 409; description "1547.72 nm/193.70000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1547.67" { value 410; description "1547.67 nm/193.70625 THz 6.25GHz spacing"; } enum "1547.62" { value 411; description "1547.62 nm/193.71250 THz 6.25/12.5GHz spacing"; } enum "1547.57" { value 412; description "1547.57 nm/193.71875 THz 6.25GHz spacing"; } enum "1547.52" { value 413; description "1547.52 nm/193.72500 THz 6.25/12.5GHz spacing"; } enum "1547.47" { value 414; description "1547.47 nm/193.73125 THz 6.25GHz spacing"; } enum "1547.42" { value 415; description "1547.42 nm/193.73750 THz 6.25/12.5GHz spacing"; } enum "1547.37" { value 416; description "1547.37 nm/193.74375 THz 6.25GHz spacing"; } enum "1547.32" { value 417; description "1547.32 nm/193.75000 THz 6.25/12.5/50GHz spacing"; } enum "1547.27" { value 418; description "1547.27 nm/193.75625 THz 6.25GHz spacing"; } enum "1547.22" { value 419; description "1547.22 nm/193.76250 THz 6.25/12.5GHz spacing"; } enum "1547.17" { value 420; description "1547.17 nm/193.76875 THz 6.25GHz spacing"; } enum "1547.12" { value 421; description "1547.12 nm/193.77500 THz 6.25/12.5/75GHz spacing"; } enum "1547.07" { value 422; description "1547.07 nm/193.78125 THz 6.25GHz spacing"; } enum "1547.02" { value 423; description "1547.02 nm/193.78750 THz 6.25/12.5GHz spacing"; } enum "1546.97" { value 424; description "1546.97 nm/193.79375 THz 6.25GHz spacing"; } enum "1546.92" { value 425; description "1546.92 nm/193.80000 THz 6.25/12.5/50/100GHz spacing"; } enum "1546.87" { value 426; description "1546.87 nm/193.80625 THz 6.25GHz spacing"; } enum "1546.82" { value 427; description "1546.82 nm/193.81250 THz 6.25/12.5GHz spacing"; } enum "1546.77" { value 428; description "1546.77 nm/193.81875 THz 6.25GHz spacing"; } enum "1546.72" { value 429; description "1546.72 nm/193.82500 THz 6.25/12.5GHz spacing"; } enum "1546.67" { value 430; description "1546.67 nm/193.83125 THz 6.25GHz spacing"; } enum "1546.62" { value 431; description "1546.62 nm/193.83750 THz 6.25/12.5GHz spacing"; } enum "1546.57" { value 432; description "1546.57 nm/193.84375 THz 6.25GHz spacing"; } enum "1546.52" { value 433; description "1546.52 nm/193.85000 THz 6.25/12.5/50/75GHz spacing"; } enum "1546.47" { value 434; description "1546.47 nm/193.85625 THz 6.25GHz spacing"; } enum "1546.42" { value 435; description "1546.42 nm/193.86250 THz 6.25/12.5GHz spacing"; } enum "1546.37" { value 436; description "1546.37 nm/193.86875 THz 6.25GHz spacing"; } enum "1546.32" { value 437; description "1546.32 nm/193.87500 THz 6.25/12.5GHz spacing"; } enum "1546.27" { value 438; description "1546.27 nm/193.88125 THz 6.25GHz spacing"; } enum "1546.22" { value 439; description "1546.22 nm/193.88750 THz 6.25/12.5GHz spacing"; } enum "1546.17" { value 440; description "1546.17 nm/193.89375 THz 6.25GHz spacing"; } enum "1546.12" { value 441; description "1546.12 nm/193.90000 THz 6.25/12.5/50/100GHz spacing"; } enum "1546.07" { value 442; description "1546.07 nm/193.90625 THz 6.25GHz spacing"; } enum "1546.02" { value 443; description "1546.02 nm/193.91250 THz 6.25/12.5GHz spacing"; } enum "1545.97" { value 444; description "1545.97 nm/193.91875 THz 6.25GHz spacing"; } enum "1545.92" { value 445; description "1545.92 nm/193.92500 THz 6.25/12.5/75GHz spacing"; } enum "1545.87" { value 446; description "1545.87 nm/193.93125 THz 6.25GHz spacing"; } enum "1545.82" { value 447; description "1545.82 nm/193.93750 THz 6.25/12.5GHz spacing"; } enum "1545.77" { value 448; description "1545.77 nm/193.94375 THz 6.25GHz spacing"; } enum "1545.72" { value 449; description "1545.72 nm/193.95000 THz 6.25/12.5/50GHz spacing"; } enum "1545.67" { value 450; description "1545.67 nm/193.95625 THz 6.25GHz spacing"; } enum "1545.62" { value 451; description "1545.62 nm/193.96250 THz 6.25/12.5GHz spacing"; } enum "1545.57" { value 452; description "1545.57 nm/193.96875 THz 6.25GHz spacing"; } enum "1545.52" { value 453; description "1545.52 nm/193.97500 THz 6.25/12.5GHz spacing"; } enum "1545.47" { value 454; description "1545.47 nm/193.98125 THz 6.25GHz spacing"; } enum "1545.42" { value 455; description "1545.42 nm/193.98750 THz 6.25/12.5GHz spacing"; } enum "1545.37" { value 456; description "1545.37 nm/193.99375 THz 6.25GHz spacing"; } enum "1545.32" { value 457; description "1545.32 nm/194.00000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1545.27" { value 458; description "1545.27 nm/194.00625 THz 6.25GHz spacing"; } enum "1545.22" { value 459; description "1545.22 nm/194.01250 THz 6.25/12.5GHz spacing"; } enum "1545.17" { value 460; description "1545.17 nm/194.01875 THz 6.25GHz spacing"; } enum "1545.12" { value 461; description "1545.12 nm/194.02500 THz 6.25/12.5GHz spacing"; } enum "1545.07" { value 462; description "1545.07 nm/194.03125 THz 6.25GHz spacing"; } enum "1545.02" { value 463; description "1545.02 nm/194.03750 THz 6.25/12.5GHz spacing"; } enum "1544.97" { value 464; description "1544.97 nm/194.04375 THz 6.25GHz spacing"; } enum "1544.92" { value 465; description "1544.92 nm/194.05000 THz 6.25/12.5/50GHz spacing"; } enum "1544.87" { value 466; description "1544.87 nm/194.05625 THz 6.25GHz spacing"; } enum "1544.82" { value 467; description "1544.82 nm/194.06250 THz 6.25/12.5GHz spacing"; } enum "1544.77" { value 468; description "1544.77 nm/194.06875 THz 6.25GHz spacing"; } enum "1544.72" { value 469; description "1544.72 nm/194.07500 THz 6.25/12.5/75GHz spacing"; } enum "1544.68" { value 470; description "1544.68 nm/194.08125 THz 6.25GHz spacing"; } enum "1544.63" { value 471; description "1544.63 nm/194.08750 THz 6.25/12.5GHz spacing"; } enum "1544.58" { value 472; description "1544.58 nm/194.09375 THz 6.25GHz spacing"; } enum "1544.53" { value 473; description "1544.53 nm/194.10000 THz 6.25/12.5/50/100GHz spacing"; } enum "1544.48" { value 474; description "1544.48 nm/194.10625 THz 6.25GHz spacing"; } enum "1544.43" { value 475; description "1544.43 nm/194.11250 THz 6.25/12.5GHz spacing"; } enum "1544.38" { value 476; description "1544.38 nm/194.11875 THz 6.25GHz spacing"; } enum "1544.33" { value 477; description "1544.33 nm/194.12500 THz 6.25/12.5GHz spacing"; } enum "1544.28" { value 478; description "1544.28 nm/194.13125 THz 6.25GHz spacing"; } enum "1544.23" { value 479; description "1544.23 nm/194.13750 THz 6.25/12.5GHz spacing"; } enum "1544.18" { value 480; description "1544.18 nm/194.14375 THz 6.25GHz spacing"; } enum "1544.13" { value 481; description "1544.13 nm/194.15000 THz 6.25/12.5/50/75GHz spacing"; } enum "1544.08" { value 482; description "1544.08 nm/194.15625 THz 6.25GHz spacing"; } enum "1544.03" { value 483; description "1544.03 nm/194.16250 THz 6.25/12.5GHz spacing"; } enum "1543.98" { value 484; description "1543.98 nm/194.16875 THz 6.25GHz spacing"; } enum "1543.93" { value 485; description "1543.93 nm/194.17500 THz 6.25/12.5GHz spacing"; } enum "1543.88" { value 486; description "1543.88 nm/194.18125 THz 6.25GHz spacing"; } enum "1543.83" { value 487; description "1543.83 nm/194.18750 THz 6.25/12.5GHz spacing"; } enum "1543.78" { value 488; description "1543.78 nm/194.19375 THz 6.25GHz spacing"; } enum "1543.73" { value 489; description "1543.73 nm/194.20000 THz 6.25/12.5/50/100GHz spacing"; } enum "1543.68" { value 490; description "1543.68 nm/194.20625 THz 6.25GHz spacing"; } enum "1543.63" { value 491; description "1543.63 nm/194.21250 THz 6.25/12.5GHz spacing"; } enum "1543.58" { value 492; description "1543.58 nm/194.21875 THz 6.25GHz spacing"; } enum "1543.53" { value 493; description "1543.53 nm/194.22500 THz 6.25/12.5/75GHz spacing"; } enum "1543.48" { value 494; description "1543.48 nm/194.23125 THz 6.25GHz spacing"; } enum "1543.43" { value 495; description "1543.43 nm/194.23750 THz 6.25/12.5GHz spacing"; } enum "1543.38" { value 496; description "1543.38 nm/194.24375 THz 6.25GHz spacing"; } enum "1543.33" { value 497; description "1543.33 nm/194.25000 THz 6.25/12.5/50GHz spacing"; } enum "1543.28" { value 498; description "1543.28 nm/194.25625 THz 6.25GHz spacing"; } enum "1543.23" { value 499; description "1543.23 nm/194.26250 THz 6.25/12.5GHz spacing"; } enum "1543.18" { value 500; description "1543.18 nm/194.26875 THz 6.25GHz spacing"; } enum "1543.13" { value 501; description "1543.13 nm/194.27500 THz 6.25/12.5GHz spacing"; } enum "1543.08" { value 502; description "1543.08 nm/194.28125 THz 6.25GHz spacing"; } enum "1543.04" { value 503; description "1543.04 nm/194.28750 THz 6.25/12.5GHz spacing"; } enum "1542.99" { value 504; description "1542.99 nm/194.29375 THz 6.25GHz spacing"; } enum "1542.94" { value 505; description "1542.94 nm/194.30000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1542.89" { value 506; description "1542.89 nm/194.30625 THz 6.25GHz spacing"; } enum "1542.84" { value 507; description "1542.84 nm/194.31250 THz 6.25/12.5GHz spacing"; } enum "1542.79" { value 508; description "1542.79 nm/194.31875 THz 6.25GHz spacing"; } enum "1542.74" { value 509; description "1542.74 nm/194.32500 THz 6.25/12.5GHz spacing"; } enum "1542.69" { value 510; description "1542.69 nm/194.33125 THz 6.25GHz spacing"; } enum "1542.64" { value 511; description "1542.64 nm/194.33750 THz 6.25/12.5GHz spacing"; } enum "1542.59" { value 512; description "1542.59 nm/194.34375 THz 6.25GHz spacing"; } enum "1542.54" { value 513; description "1542.54 nm/194.35000 THz 6.25/12.5/50GHz spacing"; } enum "1542.49" { value 514; description "1542.49 nm/194.35625 THz 6.25GHz spacing"; } enum "1542.44" { value 515; description "1542.44 nm/194.36250 THz 6.25/12.5GHz spacing"; } enum "1542.39" { value 516; description "1542.39 nm/194.36875 THz 6.25GHz spacing"; } enum "1542.34" { value 517; description "1542.34 nm/194.37500 THz 6.25/12.5/75GHz spacing"; } enum "1542.29" { value 518; description "1542.29 nm/194.38125 THz 6.25GHz spacing"; } enum "1542.24" { value 519; description "1542.24 nm/194.38750 THz 6.25/12.5GHz spacing"; } enum "1542.19" { value 520; description "1542.19 nm/194.39375 THz 6.25GHz spacing"; } enum "1542.14" { value 521; description "1542.14 nm/194.40000 THz 6.25/12.5/50/100GHz spacing"; } enum "1542.09" { value 522; description "1542.09 nm/194.40625 THz 6.25GHz spacing"; } enum "1542.04" { value 523; description "1542.04 nm/194.41250 THz 6.25/12.5GHz spacing"; } enum "1541.99" { value 524; description "1541.99 nm/194.41875 THz 6.25GHz spacing"; } enum "1541.94" { value 525; description "1541.94 nm/194.42500 THz 6.25/12.5GHz spacing"; } enum "1541.89" { value 526; description "1541.89 nm/194.43125 THz 6.25GHz spacing"; } enum "1541.84" { value 527; description "1541.84 nm/194.43750 THz 6.25/12.5GHz spacing"; } enum "1541.80" { value 528; description "1541.80 nm/194.44375 THz 6.25GHz spacing"; } enum "1541.75" { value 529; description "1541.75 nm/194.45000 THz 6.25/12.5/50/75GHz spacing"; } enum "1541.70" { value 530; description "1541.70 nm/194.45625 THz 6.25GHz spacing"; } enum "1541.65" { value 531; description "1541.65 nm/194.46250 THz 6.25/12.5GHz spacing"; } enum "1541.60" { value 532; description "1541.60 nm/194.46875 THz 6.25GHz spacing"; } enum "1541.55" { value 533; description "1541.55 nm/194.47500 THz 6.25/12.5GHz spacing"; } enum "1541.50" { value 534; description "1541.50 nm/194.48125 THz 6.25GHz spacing"; } enum "1541.45" { value 535; description "1541.45 nm/194.48750 THz 6.25/12.5GHz spacing"; } enum "1541.40" { value 536; description "1541.40 nm/194.49375 THz 6.25GHz spacing"; } enum "1541.35" { value 537; description "1541.35 nm/194.50000 THz 6.25/12.5/50/100GHz spacing"; } enum "1541.30" { value 538; description "1541.30 nm/194.50625 THz 6.25GHz spacing"; } enum "1541.25" { value 539; description "1541.25 nm/194.51250 THz 6.25/12.5GHz spacing"; } enum "1541.20" { value 540; description "1541.20 nm/194.51875 THz 6.25GHz spacing"; } enum "1541.15" { value 541; description "1541.15 nm/194.52500 THz 6.25/12.5/75GHz spacing"; } enum "1541.10" { value 542; description "1541.10 nm/194.53125 THz 6.25GHz spacing"; } enum "1541.05" { value 543; description "1541.05 nm/194.53750 THz 6.25/12.5GHz spacing"; } enum "1541.00" { value 544; description "1541.00 nm/194.54375 THz 6.25GHz spacing"; } enum "1540.95" { value 545; description "1540.95 nm/194.55000 THz 6.25/12.5/50GHz spacing"; } enum "1540.90" { value 546; description "1540.90 nm/194.55625 THz 6.25GHz spacing"; } enum "1540.85" { value 547; description "1540.85 nm/194.56250 THz 6.25/12.5GHz spacing"; } enum "1540.80" { value 548; description "1540.80 nm/194.56875 THz 6.25GHz spacing"; } enum "1540.76" { value 549; description "1540.76 nm/194.57500 THz 6.25/12.5GHz spacing"; } enum "1540.71" { value 550; description "1540.71 nm/194.58125 THz 6.25GHz spacing"; } enum "1540.66" { value 551; description "1540.66 nm/194.58750 THz 6.25/12.5GHz spacing"; } enum "1540.61" { value 552; description "1540.61 nm/194.59375 THz 6.25GHz spacing"; } enum "1540.56" { value 553; description "1540.56 nm/194.60000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1540.51" { value 554; description "1540.51 nm/194.60625 THz 6.25GHz spacing"; } enum "1540.46" { value 555; description "1540.46 nm/194.61250 THz 6.25/12.5GHz spacing"; } enum "1540.41" { value 556; description "1540.41 nm/194.61875 THz 6.25GHz spacing"; } enum "1540.36" { value 557; description "1540.36 nm/194.62500 THz 6.25/12.5GHz spacing"; } enum "1540.31" { value 558; description "1540.31 nm/194.63125 THz 6.25GHz spacing"; } enum "1540.26" { value 559; description "1540.26 nm/194.63750 THz 6.25/12.5GHz spacing"; } enum "1540.21" { value 560; description "1540.21 nm/194.64375 THz 6.25GHz spacing"; } enum "1540.16" { value 561; description "1540.16 nm/194.65000 THz 6.25/12.5/50GHz spacing"; } enum "1540.11" { value 562; description "1540.11 nm/194.65625 THz 6.25GHz spacing"; } enum "1540.06" { value 563; description "1540.06 nm/194.66250 THz 6.25/12.5GHz spacing"; } enum "1540.01" { value 564; description "1540.01 nm/194.66875 THz 6.25GHz spacing"; } enum "1539.96" { value 565; description "1539.96 nm/194.67500 THz 6.25/12.5/50/75GHz spacing"; } enum "1539.91" { value 566; description "1539.91 nm/194.68125 THz 6.25GHz spacing"; } enum "1539.86" { value 567; description "1539.86 nm/194.68750 THz 6.25/12.5GHz spacing"; } enum "1539.82" { value 568; description "1539.82 nm/194.69375 THz 6.25GHz spacing"; } enum "1539.77" { value 569; description "1539.77 nm/194.70000 THz 6.25/12.5/50/100GHz spacing"; } enum "1539.72" { value 570; description "1539.72 nm/194.70625 THz 6.25GHz spacing"; } enum "1539.67" { value 571; description "1539.67 nm/194.71250 THz 6.25/12.5GHz spacing"; } enum "1539.62" { value 572; description "1539.62 nm/194.71875 THz 6.25GHz spacing"; } enum "1539.57" { value 573; description "1539.57 nm/194.72500 THz 6.25/12.5GHz spacing"; } enum "1539.52" { value 574; description "1539.52 nm/194.73125 THz 6.25GHz spacing"; } enum "1539.47" { value 575; description "1539.47 nm/194.73750 THz 6.25/12.5GHz spacing"; } enum "1539.42" { value 576; description "1539.42 nm/194.74375 THz 6.25GHz spacing"; } enum "1539.37" { value 577; description "1539.37 nm/194.75000 THz 6.25/12.5/50/75GHz spacing"; } enum "1539.32" { value 578; description "1539.32 nm/194.75625 THz 6.25GHz spacing"; } enum "1539.27" { value 579; description "1539.27 nm/194.76250 THz 6.25/12.5GHz spacing"; } enum "1539.22" { value 580; description "1539.22 nm/194.76875 THz 6.25GHz spacing"; } enum "1539.17" { value 581; description "1539.17 nm/194.77500 THz 6.25/12.5GHz spacing"; } enum "1539.12" { value 582; description "1539.12 nm/194.78125 THz 6.25GHz spacing"; } enum "1539.07" { value 583; description "1539.07 nm/194.78750 THz 6.25/12.5GHz spacing"; } enum "1539.03" { value 584; description "1539.03 nm/194.79375 THz 6.25GHz spacing"; } enum "1538.98" { value 585; description "1538.98 nm/194.80000 THz 6.25/12.5/50/100GHz spacing"; } enum "1538.93" { value 586; description "1538.93 nm/194.80625 THz 6.25GHz spacing"; } enum "1538.88" { value 587; description "1538.88 nm/194.81250 THz 6.25/12.5GHz spacing"; } enum "1538.83" { value 588; description "1538.83 nm/194.81875 THz 6.25GHz spacing"; } enum "1538.78" { value 589; description "1538.78 nm/194.82500 THz 6.25/12.5/75GHz spacing"; } enum "1538.73" { value 590; description "1538.73 nm/194.83125 THz 6.25GHz spacing"; } enum "1538.68" { value 591; description "1538.68 nm/194.83750 THz 6.25/12.5GHz spacing"; } enum "1538.63" { value 592; description "1538.63 nm/194.84375 THz 6.25GHz spacing"; } enum "1538.58" { value 593; description "1538.58 nm/194.85000 THz 6.25/12.5/50GHz spacing"; } enum "1538.53" { value 594; description "1538.53 nm/194.85625 THz 6.25GHz spacing"; } enum "1538.48" { value 595; description "1538.48 nm/194.86250 THz 6.25/12.5GHz spacing"; } enum "1538.43" { value 596; description "1538.43 nm/194.86875 THz 6.25GHz spacing"; } enum "1538.38" { value 597; description "1538.38 nm/194.87500 THz 6.25/12.5/75GHz spacing"; } enum "1538.33" { value 598; description "1538.33 nm/194.88125 THz 6.25GHz spacing"; } enum "1538.28" { value 599; description "1538.28 nm/194.88750 THz 6.25/12.5GHz spacing"; } enum "1538.24" { value 600; description "1538.24 nm/194.89375 THz 6.25GHz spacing"; } enum "1538.19" { value 601; description "1538.19 nm/194.90000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1538.14" { value 602; description "1538.14 nm/194.90625 THz 6.25GHz spacing"; } enum "1538.09" { value 603; description "1538.09 nm/194.91250 THz 6.25/12.5GHz spacing"; } enum "1538.04" { value 604; description "1538.04 nm/194.91875 THz 6.25GHz spacing"; } enum "1537.99" { value 605; description "1537.99 nm/194.92500 THz 6.25/12.5GHz spacing"; } enum "1537.94" { value 606; description "1537.94 nm/194.93125 THz 6.25GHz spacing"; } enum "1537.89" { value 607; description "1537.89 nm/194.93750 THz 6.25/12.5GHz spacing"; } enum "1537.84" { value 608; description "1537.84 nm/194.94375 THz 6.25GHz spacing"; } enum "1537.79" { value 609; description "1537.79 nm/194.95000 THz 6.25/12.5/50GHz spacing"; } enum "1537.74" { value 610; description "1537.74 nm/194.95625 THz 6.25GHz spacing"; } enum "1537.69" { value 611; description "1537.69 nm/194.96250 THz 6.25/12.5GHz spacing"; } enum "1537.64" { value 612; description "1537.64 nm/194.96875 THz 6.25GHz spacing"; } enum "1537.59" { value 613; description "1537.59 nm/194.97500 THz 6.25/12.5/75GHz spacing"; } enum "1537.55" { value 614; description "1537.55 nm/194.98125 THz 6.25GHz spacing"; } enum "1537.50" { value 615; description "1537.50 nm/194.98750 THz 6.25/12.5GHz spacing"; } enum "1537.45" { value 616; description "1537.45 nm/194.99375 THz 6.25GHz spacing"; } enum "1537.40" { value 617; description "1537.40 nm/195.00000 THz 6.25/12.5/50/100GHz spacing"; } enum "1537.35" { value 618; description "1537.35 nm/195.00625 THz 6.25GHz spacing"; } enum "1537.30" { value 619; description "1537.30 nm/195.01250 THz 6.25/12.5GHz spacing"; } enum "1537.25" { value 620; description "1537.25 nm/195.01875 THz 6.25GHz spacing"; } enum "1537.20" { value 621; description "1537.20 nm/195.02500 THz 6.25/12.5GHz spacing"; } enum "1537.15" { value 622; description "1537.15 nm/195.03125 THz 6.25GHz spacing"; } enum "1537.10" { value 623; description "1537.10 nm/195.03750 THz 6.25/12.5GHz spacing"; } enum "1537.05" { value 624; description "1537.05 nm/195.04375 THz 6.25GHz spacing"; } enum "1537.00" { value 625; description "1537.00 nm/195.05000 THz 6.25/12.5/50/75GHz spacing"; } enum "1536.95" { value 626; description "1536.95 nm/195.05625 THz 6.25GHz spacing"; } enum "1536.90" { value 627; description "1536.90 nm/195.06250 THz 6.25/12.5GHz spacing"; } enum "1536.86" { value 628; description "1536.86 nm/195.06875 THz 6.25GHz spacing"; } enum "1536.81" { value 629; description "1536.81 nm/195.07500 THz 6.25/12.5GHz spacing"; } enum "1536.76" { value 630; description "1536.76 nm/195.08125 THz 6.25GHz spacing"; } enum "1536.71" { value 631; description "1536.71 nm/195.08750 THz 6.25/12.5GHz spacing"; } enum "1536.66" { value 632; description "1536.66 nm/195.09375 THz 6.25GHz spacing"; } enum "1536.61" { value 633; description "1536.61 nm/195.10000 THz 6.25/12.5/50/100GHz spacing"; } enum "1536.56" { value 634; description "1536.56 nm/195.10625 THz 6.25GHz spacing"; } enum "1536.51" { value 635; description "1536.51 nm/195.11250 THz 6.25/12.5GHz spacing"; } enum "1536.46" { value 636; description "1536.46 nm/195.11875 THz 6.25GHz spacing"; } enum "1536.41" { value 637; description "1536.41 nm/195.12500 THz 6.25/12.5/75GHz spacing"; } enum "1536.36" { value 638; description "1536.36 nm/195.13125 THz 6.25GHz spacing"; } enum "1536.31" { value 639; description "1536.31 nm/195.13750 THz 6.25/12.5GHz spacing"; } enum "1536.26" { value 640; description "1536.26 nm/195.14375 THz 6.25GHz spacing"; } enum "1536.22" { value 641; description "1536.22 nm/195.15000 THz 6.25/12.5/50GHz spacing"; } enum "1536.17" { value 642; description "1536.17 nm/195.15625 THz 6.25GHz spacing"; } enum "1536.12" { value 643; description "1536.12 nm/195.16250 THz 6.25/12.5GHz spacing"; } enum "1536.07" { value 644; description "1536.07 nm/195.16875 THz 6.25GHz spacing"; } enum "1536.02" { value 645; description "1536.02 nm/195.17500 THz 6.25/12.5GHz spacing"; } enum "1535.97" { value 646; description "1535.97 nm/195.18125 THz 6.25GHz spacing"; } enum "1535.92" { value 647; description "1535.92 nm/195.18750 THz 6.25/12.5GHz spacing"; } enum "1535.87" { value 648; description "1535.87 nm/195.19375 THz 6.25GHz spacing"; } enum "1535.82" { value 649; description "1535.82 nm/195.20000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1535.77" { value 650; description "1535.77 nm/195.20625 THz 6.25GHz spacing"; } enum "1535.72" { value 651; description "1535.72 nm/195.21250 THz 6.25/12.5GHz spacing"; } enum "1535.67" { value 652; description "1535.67 nm/195.21875 THz 6.25GHz spacing"; } enum "1535.63" { value 653; description "1535.63 nm/195.22500 THz 6.25/12.5GHz spacing"; } enum "1535.58" { value 654; description "1535.58 nm/195.23125 THz 6.25GHz spacing"; } enum "1535.53" { value 655; description "1535.53 nm/195.23750 THz 6.25/12.5GHz spacing"; } enum "1535.48" { value 656; description "1535.48 nm/195.24375 THz 6.25GHz spacing"; } enum "1535.43" { value 657; description "1535.43 nm/195.25000 THz 6.25/12.5/50GHz spacing"; } enum "1535.38" { value 658; description "1535.38 nm/195.25625 THz 6.25GHz spacing"; } enum "1535.33" { value 659; description "1535.33 nm/195.26250 THz 6.25/12.5GHz spacing"; } enum "1535.28" { value 660; description "1535.28 nm/195.26875 THz 6.25GHz spacing"; } enum "1535.23" { value 661; description "1535.23 nm/195.27500 THz 6.25/12.5/75GHz spacing"; } enum "1535.18" { value 662; description "1535.18 nm/195.28125 THz 6.25GHz spacing"; } enum "1535.13" { value 663; description "1535.13 nm/195.28750 THz 6.25/12.5GHz spacing"; } enum "1535.08" { value 664; description "1535.08 nm/195.29375 THz 6.25GHz spacing"; } enum "1535.04" { value 665; description "1535.04 nm/195.30000 THz 6.25/12.5/50/100GHz spacing"; } enum "1534.99" { value 666; description "1534.99 nm/195.30625 THz 6.25GHz spacing"; } enum "1534.94" { value 667; description "1534.94 nm/195.31250 THz 6.25/12.5GHz spacing"; } enum "1534.89" { value 668; description "1534.89 nm/195.31875 THz 6.25GHz spacing"; } enum "1534.84" { value 669; description "1534.84 nm/195.32500 THz 6.25/12.5GHz spacing"; } enum "1534.79" { value 670; description "1534.79 nm/195.33125 THz 6.25GHz spacing"; } enum "1534.74" { value 671; description "1534.74 nm/195.33750 THz 6.25/12.5GHz spacing"; } enum "1534.69" { value 672; description "1534.69 nm/195.34375 THz 6.25GHz spacing"; } enum "1534.64" { value 673; description "1534.64 nm/195.35000 THz 6.25/12.5/50/75GHz spacing"; } enum "1534.59" { value 674; description "1534.59 nm/195.35625 THz 6.25GHz spacing"; } enum "1534.54" { value 675; description "1534.54 nm/195.36250 THz 6.25/12.5GHz spacing"; } enum "1534.50" { value 676; description "1534.50 nm/195.36875 THz 6.25GHz spacing"; } enum "1534.45" { value 677; description "1534.45 nm/195.37500 THz 6.25/12.5GHz spacing"; } enum "1534.40" { value 678; description "1534.40 nm/195.38125 THz 6.25GHz spacing"; } enum "1534.35" { value 679; description "1534.35 nm/195.38750 THz 6.25/12.5GHz spacing"; } enum "1534.30" { value 680; description "1534.30 nm/195.39375 THz 6.25GHz spacing"; } enum "1534.25" { value 681; description "1534.25 nm/195.40000 THz 6.25/12.5/50/100GHz spacing"; } enum "1534.20" { value 682; description "1534.20 nm/195.40625 THz 6.25GHz spacing"; } enum "1534.15" { value 683; description "1534.15 nm/195.41250 THz 6.25/12.5GHz spacing"; } enum "1534.10" { value 684; description "1534.10 nm/195.41875 THz 6.25GHz spacing"; } enum "1534.05" { value 685; description "1534.05 nm/195.42500 THz 6.25/12.5/75GHz spacing"; } enum "1534.00" { value 686; description "1534.00 nm/195.43125 THz 6.25GHz spacing"; } enum "1533.96" { value 687; description "1533.96 nm/195.43750 THz 6.25/12.5GHz spacing"; } enum "1533.91" { value 688; description "1533.91 nm/195.44375 THz 6.25GHz spacing"; } enum "1533.86" { value 689; description "1533.86 nm/195.45000 THz 6.25/12.5/50GHz spacing"; } enum "1533.81" { value 690; description "1533.81 nm/195.45625 THz 6.25GHz spacing"; } enum "1533.76" { value 691; description "1533.76 nm/195.46250 THz 6.25/12.5GHz spacing"; } enum "1533.71" { value 692; description "1533.71 nm/195.46875 THz 6.25GHz spacing"; } enum "1533.66" { value 693; description "1533.66 nm/195.47500 THz 6.25/12.5GHz spacing"; } enum "1533.61" { value 694; description "1533.61 nm/195.48125 THz 6.25GHz spacing"; } enum "1533.56" { value 695; description "1533.56 nm/195.48750 THz 6.25/12.5GHz spacing"; } enum "1533.51" { value 696; description "1533.51 nm/195.49375 THz 6.25GHz spacing"; } enum "1533.47" { value 697; description "1533.47 nm/195.50000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1533.42" { value 698; description "1533.42 nm/195.50625 THz 6.25GHz spacing"; } enum "1533.37" { value 699; description "1533.37 nm/195.51250 THz 6.25/12.5GHz spacing"; } enum "1533.32" { value 700; description "1533.32 nm/195.51875 THz 6.25GHz spacing"; } enum "1533.27" { value 701; description "1533.27 nm/195.52500 THz 6.25/12.5GHz spacing"; } enum "1533.22" { value 702; description "1533.22 nm/195.53125 THz 6.25GHz spacing"; } enum "1533.17" { value 703; description "1533.17 nm/195.53750 THz 6.25/12.5GHz spacing"; } enum "1533.12" { value 704; description "1533.12 nm/195.54375 THz 6.25GHz spacing"; } enum "1533.07" { value 705; description "1533.07 nm/195.55000 THz 6.25/12.5/50GHz spacing"; } enum "1533.02" { value 706; description "1533.02 nm/195.55625 THz 6.25GHz spacing"; } enum "1532.98" { value 707; description "1532.98 nm/195.56250 THz 6.25/12.5GHz spacing"; } enum "1532.93" { value 708; description "1532.93 nm/195.56875 THz 6.25GHz spacing"; } enum "1532.88" { value 709; description "1532.88 nm/195.57500 THz 6.25/12.5/75GHz spacing"; } enum "1532.83" { value 710; description "1532.83 nm/195.58125 THz 6.25GHz spacing"; } enum "1532.78" { value 711; description "1532.78 nm/195.58750 THz 6.25/12.5GHz spacing"; } enum "1532.73" { value 712; description "1532.73 nm/195.59375 THz 6.25GHz spacing"; } enum "1532.68" { value 713; description "1532.68 nm/195.60000 THz 6.25/12.5/50/100GHz spacing"; } enum "1532.63" { value 714; description "1532.63 nm/195.60625 THz 6.25GHz spacing"; } enum "1532.58" { value 715; description "1532.58 nm/195.61250 THz 6.25/12.5GHz spacing"; } enum "1532.53" { value 716; description "1532.53 nm/195.61875 THz 6.25GHz spacing"; } enum "1532.49" { value 717; description "1532.49 nm/195.62500 THz 6.25/12.5GHz spacing"; } enum "1532.44" { value 718; description "1532.44 nm/195.63125 THz 6.25GHz spacing"; } enum "1532.39" { value 719; description "1532.39 nm/195.63750 THz 6.25/12.5GHz spacing"; } enum "1532.34" { value 720; description "1532.34 nm/195.64375 THz 6.25GHz spacing"; } enum "1532.29" { value 721; description "1532.29 nm/195.65000 THz 6.25/12.5/50/75GHz spacing"; } enum "1532.24" { value 722; description "1532.24 nm/195.65625 THz 6.25GHz spacing"; } enum "1532.19" { value 723; description "1532.19 nm/195.66250 THz 6.25/12.5GHz spacing"; } enum "1532.14" { value 724; description "1532.14 nm/195.66875 THz 6.25GHz spacing"; } enum "1532.09" { value 725; description "1532.09 nm/195.67500 THz 6.25/12.5GHz spacing"; } enum "1532.04" { value 726; description "1532.04 nm/195.68125 THz 6.25GHz spacing"; } enum "1532.00" { value 727; description "1532.00 nm/195.68750 THz 6.25/12.5GHz spacing"; } enum "1531.95" { value 728; description "1531.95 nm/195.69375 THz 6.25GHz spacing"; } enum "1531.90" { value 729; description "1531.90 nm/195.70000 THz 6.25/12.5/50/100GHz spacing"; } enum "1531.85" { value 730; description "1531.85 nm/195.70625 THz 6.25GHz spacing"; } enum "1531.80" { value 731; description "1531.80 nm/195.71250 THz 6.25/12.5GHz spacing"; } enum "1531.75" { value 732; description "1531.75 nm/195.71875 THz 6.25GHz spacing"; } enum "1531.70" { value 733; description "1531.70 nm/195.72500 THz 6.25/12.5/75GHz spacing"; } enum "1531.65" { value 734; description "1531.65 nm/195.73125 THz 6.25GHz spacing"; } enum "1531.60" { value 735; description "1531.60 nm/195.73750 THz 6.25/12.5GHz spacing"; } enum "1531.56" { value 736; description "1531.56 nm/195.74375 THz 6.25GHz spacing"; } enum "1531.51" { value 737; description "1531.51 nm/195.75000 THz 6.25/12.5/50GHz spacing"; } enum "1531.46" { value 738; description "1531.46 nm/195.75625 THz 6.25GHz spacing"; } enum "1531.41" { value 739; description "1531.41 nm/195.76250 THz 6.25/12.5GHz spacing"; } enum "1531.36" { value 740; description "1531.36 nm/195.76875 THz 6.25GHz spacing"; } enum "1531.31" { value 741; description "1531.31 nm/195.77500 THz 6.25/12.5GHz spacing"; } enum "1531.26" { value 742; description "1531.26 nm/195.78125 THz 6.25GHz spacing"; } enum "1531.21" { value 743; description "1531.21 nm/195.78750 THz 6.25/12.5GHz spacing"; } enum "1531.16" { value 744; description "1531.16 nm/195.79375 THz 6.25GHz spacing"; } enum "1531.12" { value 745; description "1531.12 nm/195.80000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1531.07" { value 746; description "1531.07 nm/195.80625 THz 6.25GHz spacing"; } enum "1531.02" { value 747; description "1531.02 nm/195.81250 THz 6.25/12.5GHz spacing"; } enum "1530.97" { value 748; description "1530.97 nm/195.81875 THz 6.25GHz spacing"; } enum "1530.92" { value 749; description "1530.92 nm/195.82500 THz 6.25/12.5GHz spacing"; } enum "1530.87" { value 750; description "1530.87 nm/195.83125 THz 6.25GHz spacing"; } enum "1530.82" { value 751; description "1530.82 nm/195.83750 THz 6.25/12.5GHz spacing"; } enum "1530.77" { value 752; description "1530.77 nm/195.84375 THz 6.25GHz spacing"; } enum "1530.72" { value 753; description "1530.72 nm/195.85000 THz 6.25/12.5/50GHz spacing"; } enum "1530.68" { value 754; description "1530.68 nm/195.85625 THz 6.25GHz spacing"; } enum "1530.63" { value 755; description "1530.63 nm/195.86250 THz 6.25/12.5GHz spacing"; } enum "1530.58" { value 756; description "1530.58 nm/195.86875 THz 6.25GHz spacing"; } enum "1530.53" { value 757; description "1530.53 nm/195.87500 THz 6.25/12.5/75GHz spacing"; } enum "1530.48" { value 758; description "1530.48 nm/195.88125 THz 6.25GHz spacing"; } enum "1530.43" { value 759; description "1530.43 nm/195.88750 THz 6.25/12.5GHz spacing"; } enum "1530.38" { value 760; description "1530.38 nm/195.89375 THz 6.25GHz spacing"; } enum "1530.33" { value 761; description "1530.33 nm/195.90000 THz 6.25/12.5/50/100GHz spacing"; } enum "1530.29" { value 762; description "1530.29 nm/195.90625 THz 6.25GHz spacing"; } enum "1530.24" { value 763; description "1530.24 nm/195.91250 THz 6.25/12.5GHz spacing"; } enum "1530.19" { value 764; description "1530.19 nm/195.91875 THz 6.25GHz spacing"; } enum "1530.14" { value 765; description "1530.14 nm/195.92500 THz 6.25/12.5GHz spacing"; } enum "1530.09" { value 766; description "1530.09 nm/195.93125 THz 6.25GHz spacing"; } enum "1530.04" { value 767; description "1530.04 nm/195.93750 THz 6.25/12.5GHz spacing"; } enum "1529.99" { value 768; description "1529.99 nm/195.94375 THz 6.25GHz spacing"; } enum "1529.94" { value 769; description "1529.94 nm/195.95000 THz 6.25/12.5/50/75GHz spacing"; } enum "1529.89" { value 770; description "1529.89 nm/195.95625 THz 6.25GHz spacing"; } enum "1529.85" { value 771; description "1529.85 nm/195.96250 THz 6.25/12.5GHz spacing"; } enum "1529.80" { value 772; description "1529.80 nm/195.96875 THz 6.25GHz spacing"; } enum "1529.75" { value 773; description "1529.75 nm/195.97500 THz 6.25/12.5GHz spacing"; } enum "1529.70" { value 774; description "1529.70 nm/195.98125 THz 6.25GHz spacing"; } enum "1529.65" { value 775; description "1529.65 nm/195.98750 THz 6.25/12.5GHz spacing"; } enum "1529.60" { value 776; description "1529.60 nm/195.99375 THz 6.25GHz spacing"; } enum "1529.55" { value 777; description "1529.55 nm/196.00000 THz 6.25/12.5/50/100GHz spacing"; } enum "1529.50" { value 778; description "1529.50 nm/196.00625 THz 6.25GHz spacing"; } enum "1529.46" { value 779; description "1529.46 nm/196.01250 THz 6.25/12.5GHz spacing"; } enum "1529.41" { value 780; description "1529.41 nm/196.01875 THz 6.25GHz spacing"; } enum "1529.36" { value 781; description "1529.36 nm/196.02500 THz 6.25/12.5/75GHz spacing"; } enum "1529.31" { value 782; description "1529.31 nm/196.03125 THz 6.25GHz spacing"; } enum "1529.26" { value 783; description "1529.26 nm/196.03750 THz 6.25/12.5GHz spacing"; } enum "1529.21" { value 784; description "1529.21 nm/196.04375 THz 6.25GHz spacing"; } enum "1529.16" { value 785; description "1529.16 nm/196.05000 THz 6.25/12.5/50GHz spacing"; } enum "1529.11" { value 786; description "1529.11 nm/196.05625 THz 6.25GHz spacing"; } enum "1529.07" { value 787; description "1529.07 nm/196.06250 THz 6.25/12.5GHz spacing"; } enum "1529.02" { value 788; description "1529.02 nm/196.06875 THz 6.25GHz spacing"; } enum "1528.97" { value 789; description "1528.97 nm/196.07500 THz 6.25/12.5GHz spacing"; } enum "1528.92" { value 790; description "1528.92 nm/196.08125 THz 6.25GHz spacing"; } enum "1528.87" { value 791; description "1528.87 nm/196.08750 THz 6.25/12.5GHz spacing"; } enum "1528.82" { value 792; description "1528.82 nm/196.09375 THz 6.25GHz spacing"; } enum "1528.77" { value 793; description "1528.77 nm/196.10000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1528.38" { value 794; description "1528.38 nm/196.15040 THz 50Ghz spacing"; } } description "Wavelength of the optics (nanometers) for 50Ghz/100Ghz spacing"; } leaf tx-power { type string; units "dBm"; description "Transmit laser output power"; } leaf loopback { type empty; description "Put the optics in loopback mode"; } leaf los-warning-threshold { type string; units "dBm"; description "LOS warning threshold"; } leaf los-alarm-threshold { type string; units "dBm"; description "LOS alarm threshold"; } leaf modulation-format { type enumeration { enum "16qam" { value 0; description "16-QAM Modulation Format"; } enum "8qam" { value 1; description "8-QAM MOdulation Format"; } enum "qpsk" { value 2; description "QPSK Modulation Format"; } } description "Type of Modulation Format"; } choice laser-enable-choice { leaf laser-enable { type empty; description "Enable Laser"; } leaf no-laser-enable { type empty; description "Don't enable Laser"; } } // choice laser-enable-choice choice is-ma-choice { leaf is-ma { type empty; description "Link is enabled with alarms masked"; } leaf no-is-ma { type empty; description "Don't link is enabled with alarms masked"; } } // choice is-ma-choice leaf encoding { type enumeration { enum "differential" { value 0; description "Differential phase line encoding"; } enum "non-differential" { value 1; description "Non-differential phase line encoding"; } } description "Line encoding"; } leaf fec { type enumeration { enum "sdfec" { value 0; description "Sky-Compatible Soft Decision Forward Error Correction"; } enum "sdfec25" { value 1; description "Denali-Compatible Soft Decision Forward Error Correction with 25 percent overhead"; } enum "hgfec" { value 2; description "High Gain Forward Error Correction"; } enum "sdfec15" { value 3; description "Soft Decision Forward Error Correction with 15 percent overhead"; } } description "Forward Error Correction mode"; } leaf high-polarization { type empty; description "High polarization tracking mode"; } container signal-degrade { description "Signal degrade thresholds"; uses apply-advanced; leaf interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 1000"; } } units "milliseconds"; default "10"; description "Time interval"; } leaf ber-threshold-clear { type string { junos:posix-pattern "^[0-9]+(.[0-9]+)?e-[0-9]$"; junos:pattern-message "Ber threshold value in format: xe-n, x is an integer or decimal number, n = 0..9"; } description "Ber threshold for signal degrade clear (format: xe-n, example: 4.5e-3)"; } leaf ber-threshold-signal-degrade { type string { junos:posix-pattern "^[0-9]+(.[0-9]+)?e-[0-9]$"; junos:pattern-message "Ber threshold value in format: xe-n, x is an integer or decimal number, n = 0..9"; } description "Ber threshold for signal-degrade (format: xe-n, example: 4.5e-3)"; } leaf q-threshold-signal-degrade-clear { type string; units "dB"; description "Q threshold for signal-degrade clear (e.g. 14.26)"; } leaf q-threshold-signal-degrade { type string; units "dB"; description "Q threshold for signal-degrade (e.g. 9.26)"; } } // container signal-degrade list alarm { key "name"; ordered-by user; description "Set optic alarms"; leaf name { type enumeration { enum "low-light-alarm" { value 0; description "Enable low light alarm"; } } } uses apply-advanced; choice actiontype { leaf syslog { type empty; } leaf link-down { type empty; } } // choice actiontype } // list alarm container tca { description "Set tca for optic alarms"; uses apply-advanced; container tx-power-high-tca { description "Tx power high TCA"; uses apply-advanced; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable tca"; } leaf no-enable-tca { type empty; description "Don't enable tca"; } } // choice enable-tca-choice leaf threshold { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 15 minute tx power high TCA in dBm"; } leaf threshold-24hrs { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 24 hour tx power high TCA in dBm"; } } // container tx-power-high-tca container tx-power-low-tca { description "Tx power low TCA"; uses apply-advanced; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable tca"; } leaf no-enable-tca { type empty; description "Don't enable tca"; } } // choice enable-tca-choice leaf threshold { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 15 minute tx power low TCA in dBm"; } leaf threshold-24hrs { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 24 hour tx power low TCA in dBm"; } } // container tx-power-low-tca container rx-power-high-tca { description "Rx power high TCA"; uses apply-advanced; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable tca"; } leaf no-enable-tca { type empty; description "Don't enable tca"; } } // choice enable-tca-choice leaf threshold { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 15 minute rx power high TCA in dBm"; } leaf threshold-24hrs { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 24 hour rx power high TCA in dBm"; } } // container rx-power-high-tca container rx-power-low-tca { description "Rx power low TCA"; uses apply-advanced; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable tca"; } leaf no-enable-tca { type empty; description "Don't enable tca"; } } // choice enable-tca-choice leaf threshold { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 15 minute rx power low TCA in dBm"; } leaf threshold-24hrs { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 24 hour rx power low TCA in dBm"; } } // container rx-power-low-tca container temperature-high-tca { description "Temperature high TCA"; uses apply-advanced; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable tca"; } leaf no-enable-tca { type empty; description "Don't enable tca"; } } // choice enable-tca-choice leaf threshold { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 15 minute high temperature TCA in celsius"; } leaf threshold-24hrs { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 24 hour high temperature TCA in celsius"; } } // container temperature-high-tca container temperature-low-tca { description "Temperature low TCA"; uses apply-advanced; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable tca"; } leaf no-enable-tca { type empty; description "Don't enable tca"; } } // choice enable-tca-choice leaf threshold { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 15 minute low temperature TCA in celsius"; } leaf threshold-24hrs { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 24 hour low temperature TCA in celsius"; } } // container temperature-low-tca container carrier-frequency-offset-high-tca { description "Carrier frequency offset high TCA"; uses apply-advanced; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable tca"; } leaf no-enable-tca { type empty; description "Don't enable tca"; } } // choice enable-tca-choice leaf threshold { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 15 minute frequency offset high TCA in MHz"; } leaf threshold-24hrs { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 24 hour frequency offset high TCA in MHz"; } } // container carrier-frequency-offset-high-tca container carrier-frequency-offset-low-tca { description "Carrier frequency offset low TCA"; uses apply-advanced; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable tca"; } leaf no-enable-tca { type empty; description "Don't enable tca"; } } // choice enable-tca-choice leaf threshold { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 15 minute frequency offset low TCA in MHz"; } leaf threshold-24hrs { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 24 hour frequency offset low TCA in MHz"; } } // container carrier-frequency-offset-low-tca container fec-ber { description "Optics Errored Seconds Threshold crossing defect trigger"; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable the Optics errored seconds threshold crossing alert"; } leaf no-enable-tca { type empty; description "Don't enable the Optics errored seconds threshold crossing alert"; } } // choice enable-tca-choice leaf threshold { type string { junos:posix-pattern "^[0-9]+(\.[0-9]+)?e-[0-9]$"; junos:pattern-message "FEC BER threshold value in format: xe-n, x is an integer or decimal number, n = 0..9"; } default "10e-3"; description "TCA threshold for BER value in format: xe-n, x is an integer or decimal number, n = 0..9"; } leaf threshold-24hrs { type string { junos:posix-pattern "^[0-9]+(\.[0-9]+)?e-[0-9]$"; junos:pattern-message "FEC BER threshold value in format: xe-n, x is an integer or decimal number, n = 0..9"; } default "10e-3"; description "TCA threshold for BER value in format: xe-n, x is an integer or decimal number, n = 0..9"; } } // container fec-ber container tec-current-high-tca { description "TEC Current high TCA"; uses apply-advanced; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable tca"; } leaf no-enable-tca { type empty; description "Don't enable tca"; } } // choice enable-tca-choice leaf threshold { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 15 minute TEC Current high TCA in mA"; } leaf threshold-24hrs { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 24 hour TEC Current high TCA in mA"; } } // container tec-current-high-tca container tec-current-low-tca { description "TEC Current low TCA"; uses apply-advanced; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable tca"; } leaf no-enable-tca { type empty; description "Don't enable tca"; } } // choice enable-tca-choice leaf threshold { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 15 minute TEC Current low TCA in mA"; } leaf threshold-24hrs { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 24 hour TEC Current low TCA in mA"; } } // container tec-current-low-tca container residual-isi-high-tca { description "Residual ISI high TCA"; uses apply-advanced; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable tca"; } leaf no-enable-tca { type empty; description "Don't enable tca"; } } // choice enable-tca-choice leaf threshold { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 15 minute Residual ISI high TCA in ps/nm"; } leaf threshold-24hrs { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 24 hour Residual ISI high TCA in ps/nm"; } } // container residual-isi-high-tca container residual-isi-low-tca { description "Residual ISI low TCA"; uses apply-advanced; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable tca"; } leaf no-enable-tca { type empty; description "Don't enable tca"; } } // choice enable-tca-choice leaf threshold { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 15 minute Residual ISI low TCA in ps/nm"; } leaf threshold-24hrs { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 24 hour Residual ISI low TCA in ps/nm"; } } // container residual-isi-low-tca container pam-histogram-high-tca { description "PAM Histogram high TCA"; uses apply-advanced; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable tca"; } leaf no-enable-tca { type empty; description "Don't enable tca"; } } // choice enable-tca-choice leaf threshold { type string { junos:posix-pattern "^[0-9]+$"; junos:pattern-message "must be an unsigned integer"; } description "Threshold for 15 minute PAM Histogram high TCA"; } leaf threshold-24hrs { type string { junos:posix-pattern "^[0-9]+$"; junos:pattern-message "must be an unsigned integer"; } description "Threshold for 24 hour PAM Histogram high TCA"; } } // container pam-histogram-high-tca container snr-low-tca { description "SNR low TCA"; uses apply-advanced; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable tca"; } leaf no-enable-tca { type empty; description "Don't enable tca"; } } // choice enable-tca-choice leaf threshold { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 15 minute SNR low TCA in dBm "; } leaf threshold-24hrs { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 24 hour SNR low TCA in dBm"; } } // container snr-low-tca container fec-corrected-errors-high-tca { description "FEC Corrected Error High Threshold crossing defect trigger"; uses apply-advanced; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable the FEC Corrected Errors threshold crossing alert"; } leaf no-enable-tca { type empty; description "Don't enable the FEC Corrected Errors threshold crossing alert"; } } // choice enable-tca-choice leaf threshold { type string { junos:posix-pattern "^[0-9]+(\.[0-9]+)?e-[0-9]$"; junos:pattern-message "FEC Corrected-Errs threshold value in format: xe-n, x is an integer or decimal number, n = 0..9"; } default "10e-3"; description "FEC Corrected-Errs value in format: xe-n, x is an integer or decimal number, n = 0..9"; } leaf threshold-24hrs { type string { junos:posix-pattern "^[0-9]+(\.[0-9]+)?e-[0-9]$"; junos:pattern-message "FEC Corrected-Errs threshold value in format: xe-n, x is an integer or decimal number, n = 0..9"; } default "10e-3"; description "FEC Corrected-Errs value in format: xe-n, x is an integer or decimal number, n = 0..9"; } } // container fec-corrected-errors-high-tca container fec-ucorrected-words-high-tca { description "FEC UCorrected Words High Threshold crossing defect trigger"; uses apply-advanced; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable the FEC UCorrected Words threshold crossing alert"; } leaf no-enable-tca { type empty; description "Don't enable the FEC UCorrected Words threshold crossing alert"; } } // choice enable-tca-choice leaf threshold { type string { junos:posix-pattern "^[0-9]+(\.[0-9]+)?e-[0-9]$"; junos:pattern-message "FEC UCorrected-Words threshold value in format: xe-n, x is an integer or decimal number, n = 0..9"; } default "10e-3"; description "FEC UCorrected-Words value in format: xe-n, x is an integer or decimal number, n = 0..9"; } leaf threshold-24hrs { type string { junos:posix-pattern "^[0-9]+(\.[0-9]+)?e-[0-9]$"; junos:pattern-message "FEC UCorrected-Words threshold value in format: xe-n, x is an integer or decimal number, n = 0..9"; } default "10e-3"; description "FEC UCorrected-Words value in format: xe-n, x is an integer or decimal number, n = 0..9"; } } // container fec-ucorrected-words-high-tca container laser-frequency-error-high-tca { description "Laser frequency error high TCA"; uses apply-advanced; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable tca"; } leaf no-enable-tca { type empty; description "Don't enable tca"; } } // choice enable-tca-choice leaf threshold { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 15 minute frequency error high TCA in MHz"; } leaf threshold-24hrs { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 24 hour frequency error high TCA in MHz"; } } // container laser-frequency-error-high-tca container laser-frequency-error-low-tca { description "Laser frequency error low TCA"; uses apply-advanced; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable tca"; } leaf no-enable-tca { type empty; description "Don't enable tca"; } } // choice enable-tca-choice leaf threshold { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 15 minute frequency error low TCA in MHz"; } leaf threshold-24hrs { type string { junos:posix-pattern "^[+-]?[0-9]+(\.[0-9]+)?$"; junos:pattern-message "numerical value must be specified with optional leading sign and optional decimal point"; } description "Threshold for 24 hour frequency error low TCA in MHz"; } } // container laser-frequency-error-low-tca } // container tca list warning { key "name"; ordered-by user; description "Set optic warnings"; leaf name { type enumeration { enum "low-light-warning" { value 0; description "Enable low light warning"; } } } uses apply-advanced; choice actiontype { leaf syslog { type empty; description "Set action as syslog"; } leaf link-down { type empty; description "Set action as link-down"; } } // choice actiontype } // list warning leaf low-power-mode { type empty; description "Force optics to low power mode"; } leaf host-side-fec { type enumeration { enum "off" { value 0; description "Host side FEC OFF for optics"; } enum "on" { value 1; description "Host side FEC ON for optics"; } } description "Host side optics FEC ON/OFF"; } leaf media-side-fec { type enumeration { enum "off" { value 0; description "Media side FEC OFF for optics"; } enum "on" { value 1; description "Media side FEC ON for optics"; } } description "Media side FEC ON/OFF"; } choice lane-info { list lane { key "name"; description "Media lane number"; leaf name { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 7"; } } description "Lane number"; } uses apply-advanced; leaf tx-laser { junos:must "(!("interfaces ${interface} disable"))"; junos:must-message "tx-laser cannot be applied when interface is disabled"; type enumeration { enum "off" { value 0; description "Transmit laser OFF for optics"; } enum "on" { value 1; description "Transmit laser ON for optics"; } } description "Transmit Laser ON/OFF"; } leaf rx-output { type enumeration { enum "off" { value 0; description "Receive output OFF for optics"; } enum "on" { value 1; description "Receive output ON for optics"; } } description "Receive output ON/OFF"; } leaf tx-cdr { type enumeration { enum "off" { value 0; description "Transmit Clock and Data Recovery OFF for optics"; } enum "on" { value 1; description "Transmit Clock and Data Recovery ON for optics"; } } description "Transmit Clock and Data Recovery ON/OFF"; } leaf rx-cdr { type enumeration { enum "off" { value 0; description "Receive Clock and Data Recovery OFF for optics"; } enum "on" { value 1; description "Receive Clock and Data Recovery ON for optics"; } } description "Receive Clock and Data Recovery ON/OFF"; } leaf tx-input-equalization-adaptive { type enumeration { enum "off" { value 0; description "Transmit adaptive equalization OFF for optics"; } enum "on" { value 1; description "Transmit adaptive equalization ON for optics"; } } description "Transmit adaptive equalization ON/OFF"; } leaf tx-input-equalization-manual { junos:must "(!(".. tx-input-equalization-adaptive on"))"; junos:must-message "Manual equalization not possible when adaptive is enabled"; type union { type string { pattern "<.*>|$.*"; } type int32 { range "0 .. 15"; } } units "dB"; description "Transmit manual equalization for optics"; } leaf rx-output-emphasis { type union { type string { pattern "<.*>|$.*"; } type int32 { range "0 .. 15"; } } units "dB"; description "Receive output emphasis for optics"; } leaf rx-output-amplitude { type enumeration { enum "400mV" { value 0; description "No equalization for 100mV - 400mV amplitude"; } enum "600mV" { value 1; description "No equalization for 300mV - 600mV amplitude"; } enum "800mV" { value 2; description "No equalization for 400mV - 800mV amplitude"; } enum "1200mV" { value 3; description "No equalization for 600mV - 1200mV amplitude"; } } description "Receive output amplitude setting"; } leaf tx-squelch { type enumeration { enum "off" { value 0; description "Transmit squelch OFF for optics"; } enum "on" { value 1; description "Transmit squelch ON for optics"; } } description "Transmit squelch ON/OFF"; } leaf rx-squelch { type enumeration { enum "off" { value 0; description "Receive squelch OFF for optics"; } enum "on" { value 1; description "Receive squelch ON for optics"; } } description "Receive squelch ON/OFF"; } leaf tx-rate-select { type union { type string { pattern "<.*>|$.*"; } type int32 { range "0 .. 3"; } } description "Transmit rate select for optics"; } leaf rx-rate-select { type union { type string { pattern "<.*>|$.*"; } type int32 { range "0 .. 3"; } } description "Receive rate select for optics"; } } // list lane container lane-all { presence "enable lane-all"; description "Apply settings to all lane"; uses apply-advanced; leaf tx-laser { junos:must "(!("interfaces ${interface} disable"))"; junos:must-message "tx-laser cannot be applied when interface is disabled"; type enumeration { enum "off" { value 0; description "Transmit laser OFF for optics"; } enum "on" { value 1; description "Transmit laser ON for optics"; } } description "Transmit Laser ON/OFF"; } leaf rx-output { type enumeration { enum "off" { value 0; description "Receive output OFF for optics"; } enum "on" { value 1; description "Receive output ON for optics"; } } description "Receive output ON/OFF"; } leaf tx-cdr { type enumeration { enum "off" { value 0; description "Transmit Clock and Data Recovery OFF for optics"; } enum "on" { value 1; description "Transmit Clock and Data Recovery ON for optics"; } } description "Transmit Clock and Data Recovery ON/OFF"; } leaf rx-cdr { type enumeration { enum "off" { value 0; description "Receive Clock and Data Recovery OFF for optics"; } enum "on" { value 1; description "Receive Clock and Data Recovery ON for optics"; } } description "Receive Clock and Data Recovery ON/OFF"; } leaf tx-input-equalization-adaptive { type enumeration { enum "off" { value 0; description "Transmit adaptive equalization OFF for optics"; } enum "on" { value 1; description "Transmit adaptive equalization ON for optics"; } } description "Transmit adaptive equalization ON/OFF"; } leaf tx-input-equalization-manual { junos:must "(!(".. tx-input-equalization-adaptive on"))"; junos:must-message "Manual equalization not possible when adaptive is enabled"; type union { type string { pattern "<.*>|$.*"; } type int32 { range "0 .. 15"; } } units "dB"; description "Transmit manual equalization for optics"; } leaf rx-output-emphasis { type union { type string { pattern "<.*>|$.*"; } type int32 { range "0 .. 15"; } } units "dB"; description "Receive output emphasis for optics"; } leaf rx-output-amplitude { type enumeration { enum "400mV" { value 0; description "No equalization for 100mV - 400mV amplitude"; } enum "600mV" { value 1; description "No equalization for 300mV - 600mV amplitude"; } enum "800mV" { value 2; description "No equalization for 400mV - 800mV amplitude"; } enum "1200mV" { value 3; description "No equalization for 600mV - 1200mV amplitude"; } } description "Receive output amplitude setting"; } leaf tx-squelch { type enumeration { enum "off" { value 0; description "Transmit squelch OFF for optics"; } enum "on" { value 1; description "Transmit squelch ON for optics"; } } description "Transmit squelch ON/OFF"; } leaf rx-squelch { type enumeration { enum "off" { value 0; description "Receive squelch OFF for optics"; } enum "on" { value 1; description "Receive squelch ON for optics"; } } description "Receive squelch ON/OFF"; } leaf tx-rate-select { type union { type string { pattern "<.*>|$.*"; } type int32 { range "0 .. 3"; } } description "Transmit rate select for optics"; } leaf rx-rate-select { type union { type string { pattern "<.*>|$.*"; } type int32 { range "0 .. 3"; } } description "Receive rate select for optics"; } } // container lane-all } // choice lane-info } // container optics-options container otn-options { description "Optical Transmission Network interface-specific options"; uses otn_options_type; } // container otn-options container tdm-options { description "Time division multiplexing (TDM) interface-specific options"; uses tdm_options_type; } // container tdm-options container och-options { description "Optical channel configuration options"; uses och-attributes; } // container och-options container otu-options { description "Optical transmission unit configuration options"; uses otu-attributes; } // container otu-options container odu-options { description "Optical data unit configuration options"; uses odu-attributes; } // container odu-options container ett-options { description "Transport ethernet client configuration options"; uses ett-attributes; } // container ett-options container fastether-options { description "Fast Ethernet interface-specific options"; uses apply-advanced; choice loopback-choice { leaf loopback { type empty; description "Enable loopback"; } leaf no-loopback { type empty; description "Don't enable loopback"; } } // choice loopback-choice choice flow-control-choice { leaf flow-control { type empty; description "Enable flow control"; } leaf no-flow-control { type empty; description "Don't enable flow control"; } } // choice flow-control-choice choice source-filtering-choice { leaf source-filtering { type empty; description "Enable source address filtering"; } leaf no-source-filtering { type empty; description "Don't enable source address filtering"; } } // choice source-filtering-choice leaf ingress-rate-limit { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 100"; } } units "megabits per second"; description "Ingress rate at port"; } list source-address-filter { key "name"; ordered-by user; description "Source address filters"; leaf name { type jt:mac-addr; description "Remote MAC address"; } } // list source-address-filter container ieee-802.3ad { junos:must "(!("system autoinstallation"))"; junos:must-message "incompatible with 'system autoinstallation'"; description "IEEE 802.3ad"; uses apply-advanced; container lacp { description "Link Aggregation Control Protocol configuration"; uses apply-advanced; leaf port-priority { type union { type uint16; type string { pattern "<.*>|$.*"; } } description "Priority of the port (0 ... 65535)"; } } // container lacp leaf bundle { junos:must "(!(".. .. .. vlan-offload"))"; junos:must-message "ae child device vlan-offload is not allowed"; junos:must "(!(".. .. .. flow-control"))"; junos:must-message "Setting flow-control on ae child device is not allowed"; junos:must "(!(".. .. .. mtu"))"; junos:must-message "Setting mtu on ae child device is not allowed"; junos:must "(!(".. .. .. vlan-vci-tagging"))"; junos:must-message "ae child device vlan-vci-tagging is not allowed"; junos:must "(!(".. .. .. stacked-vlan-tagging"))"; junos:must-message "ae child device stacked-vlan-tagging is not allowed"; junos:must "(!(".. .. .. flexible-vlan-tagging"))"; junos:must-message "ae child device flexible-vlan-tagging is not allowed"; junos:must "(!(".. .. .. vlan-tagging"))"; junos:must-message "ae child device vlan-tagging is not allowed"; type union { type jt:interface-device; type string { pattern "<.*>|$.*"; } } description "Join an aggregated Ethernet interface"; } choice type { leaf primary { type empty; description "Primary interface for link-protection mode"; } leaf backup { type empty; description "Backup interface for link-protection mode"; } } // choice type } // container ieee-802.3ad container mpls { description "MPLS options"; uses mpls_ifd_options; } // container mpls leaf ignore-l3-incompletes { type empty; description "Ignore L3 incomplete errors"; } } // container fastether-options container aggregated-ether-options { description "Aggregated Ethernet interface-specific options"; uses apply-advanced; choice loopback-choice { leaf loopback { type empty; description "Enable loopback"; } leaf no-loopback { type empty; description "Don't enable loopback"; } } // choice loopback-choice choice flow-control-choice { leaf flow-control { type empty; description "Enable flow control"; } leaf no-flow-control { type empty; description "Don't enable flow control"; } } // choice flow-control-choice choice source-filtering-choice { leaf source-filtering { type empty; description "Enable source address filtering"; } leaf no-source-filtering { type empty; description "Don't enable source address filtering"; } } // choice source-filtering-choice leaf autostate-exclude { type empty; description "Interface will not contribute to IRB state"; } container link-protection { presence "enable link-protection"; description "Enable link protection mode"; uses apply-advanced; leaf revertive { junos:must "(!("interfaces ${interface} aggregated-ether-options link-protection non-revertive"))"; junos:must-message "link-protection revertive and non-revertive are mutually exclusive"; junos:must "(!("chassis aggregated-devices ethernet lacp"))"; junos:must-message "link-protection revertive and LACP are mutually exclusive"; junos:must "(!("interfaces ${interface} aggregated-ether-options lacp"))"; junos:must-message "link-protection revertive and LACP are mutually exclusive"; type empty; description "Revert back from active backup link to primary, if primary is UP"; } leaf non-revertive { junos:must "(!("interfaces ${interface} aggregated-ether-options link-protection revertive"))"; junos:must-message "link-protection revertive and non-revertive are mutually exclusive"; junos:must "(!("chassis aggregated-devices ethernet lacp"))"; junos:must-message "link-protection revertive and LACP are mutually exclusive"; junos:must "(!("interfaces ${interface} aggregated-ether-options lacp"))"; junos:must-message "link-protection revertive and LACP are mutually exclusive"; type empty; description "Do not revert back (default mode) from active backup link to primary, if primary is UP"; } leaf backup-state { type enumeration { enum "accept-data" { value 0; description "Accept data on receive channel of backup link"; } enum "discard-data" { value 1; description "Discard data on receive channel of backup link"; } enum "down" { junos:must "(!("chassis aggregated-devices ethernet lacp"))"; junos:must-message "backup-state down and LACP are mutually exclusive"; junos:must "(!("interfaces ${interface} aggregated-ether-options lacp"))"; junos:must-message "backup-state down and LACP are mutually exclusive"; value 2; description "Backup link is marked down"; } } default "accept-data"; description "Link protection backup link state"; } container rtg-config { presence "enable rtg-config"; description "RTG enable on AE"; uses apply-advanced; leaf preempt-cutover-timer { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } default "1"; description "RTG preempt-cutover-timer in seconds"; } } // container rtg-config } // container link-protection choice fcoe-lag-choice { leaf fcoe-lag { type empty; description "Enable FIP/FCoE LAG"; } leaf no-fcoe-lag { type empty; description "Don't enable FIP/FCoE LAG"; } } // choice fcoe-lag-choice list source-address-filter { key "name"; ordered-by user; description "Source address filters"; leaf name { type jt:mac-addr; description "Remote MAC address"; } } // list source-address-filter container configured-flow-control { junos:must "(!((".. flow-control" || ".. no-flow-control")))"; junos:must-message "flow-control and configured-flow-control are not allowed together"; presence "enable configured-flow-control"; description "Enable flow control"; uses apply-advanced; leaf rx-buffers { type enumeration { enum "on" { value 0; description "Enable Rx buffers"; } enum "off" { value 1; description "Disable Rx buffers"; } } description "Enable/Disable Rx buffers"; } leaf tx-buffers { type enumeration { enum "on" { value 0; description "Enable Tx buffers"; } enum "off" { value 1; description "Disable Tx buffers"; } } description "Enable/Disable Tx buffers"; } } // container configured-flow-control container load-balance { uses aggregate-load-balance; } // container load-balance container bfd-liveness-detection { junos:must "(!(".. lacp fast-failover"))"; junos:must-message "BFD not supported with lacp with fast-failover mode"; junos:must "(!(".. lacp link-protection"))"; junos:must-message "BFD not supported with lacp link protection"; junos:must "(!(".. link-protection"))"; junos:must-message "BFD not supported with link protection"; description "Bidirectional Forwarding Detection (BFD) options"; 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 authentication { description "Authentication options"; uses apply-advanced; leaf key-chain { junos:must "(".. algorithm")"; junos:must-message "May not be configured without algorithm"; junos:must "("security authentication-key-chains key-chain $$")"; junos:must-message "Referenced key-chain must be defined"; type string; description "Key chain name"; } leaf algorithm { junos:must "(".. key-chain")"; junos:must-message "May not be configured without key-chain"; type enumeration { enum "simple-password" { value 0; description "Simple password"; } enum "keyed-md5" { value 1; description "Keyed message Digest 5"; } enum "meticulous-keyed-md5" { value 2; description "Meticulous keyed message Digest 5"; } enum "keyed-sha-1" { value 3; description "Keyed secure hash algorithm (SHA1) "; } enum "meticulous-keyed-sha-1" { value 4; description "Meticulous keyed secure hash algorithm (SHA1) "; } } description "Algorithm name"; } leaf loose-check { type empty; description "Verify authentication only if authentication is negotiated"; } } // container authentication leaf neighbor { type jt:ipaddr; description "BFD neighbor address"; } leaf local-address { type jt:ipaddr; description "BFD local address"; } leaf holddown-interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255000"; } } units "milliseconds"; description "Time to hold the session-UP notification to the client"; } } // container bfd-liveness-detection leaf minimum-links { junos:must "(!("interfaces ${interface} aggregated-ether-options link-speed mixed"))"; junos:must-message "Minimum-links option is not compatible with link-speed mixed"; type union { type string { pattern "<.*>|$.*"; } type uint16; } description "Minimum number of aggregated links"; } container minimum-bandwidth { junos:must "(!("interfaces ${interface} aggregated-ether-options optimize-aggregate-frr"))"; junos:must-message "Minimum-bandwidth and optimize-aggregate-frr are mutually exclusive"; junos:must "(!("interfaces ${interface} aggregated-ether-options minimum-links"))"; junos:must-message "Minimum-bandwidth and minimum-links are mutually exclusive"; presence "enable minimum-bandwidth"; description "Minimum bandwidth configured for aggregated bundle"; uses apply-advanced; leaf bw-value { type union { type uint64; type string { pattern "<.*>|$.*"; } } default "1"; description "Bandwidth value"; } leaf bw-unit { type enumeration { enum "bps" { value 0; description "Links are in bits per sec"; } enum "kbps" { value 1; description "Links are in kilo bits per sec"; } enum "mbps" { value 2; description "Links are in mega bits per sec"; } enum "gbps" { value 3; description "Links are in giga bits per sec "; } } description "Bandwidth unit"; } } // container minimum-bandwidth choice redundancy_choice { case case_1 { } // case case_1 case case_2 { } // case case_2 } // choice redundancy_choice container rebalance-periodic { uses apply-advanced; } // container rebalance-periodic leaf link-speed { type enumeration { enum "10m" { value 0; description "Links are 10M"; } enum "100m" { value 1; description "Links are 100M"; } enum "1g" { value 2; description "Links are 1G"; } enum "2.5g" { value 3; description "Links are 2.5G"; } enum "5g" { value 4; description "Links are 5G"; } enum "8g" { value 5; description "Links are 8G"; } enum "10g" { value 6; description "Links are 10G"; } enum "25g" { value 7; description "Links are 25G"; } enum "40g" { value 8; description "Links are 40G"; } enum "50g" { value 9; description "Links are 50G"; } enum "80g" { value 10; description "Links are 80G"; } enum "100g" { value 11; description "Links are 100G"; } enum "400g" { value 12; description "Links are 400G"; } enum "oc192" { value 13; description "Links are OC-192"; } enum "mixed" { junos:must "(!("interfaces ${interface} per-unit-scheduler"))"; junos:must-message "per-unit-scheduler is incompatible with link-speed mixed"; junos:must "(!(".. resilient-hash"))"; junos:must-message "Mixed-rate AE is not supported along with Resilient Hashing mode"; junos:must "(!(".. load-balance adaptive"))"; junos:must-message "Mixed-rate AE is not supported along with Adaptive Load balance mode"; value 14; description "Links are various speeds"; } } description "Link speed of individual interface that joins the AE"; } container local-bias { presence "enable local-bias"; description "Turn on local bias functionality"; uses apply-advanced; leaf disable { type empty; description "Disable local-bias"; } } // container local-bias leaf local-minimum-links-threshold { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 100"; } } description "Specify threshold for minimum links per VC/VCF member"; } leaf resilient-hash { junos:must "(!(".. dlb"))"; junos:must-message "Resilient-hash AE is not supported along with Dynamic Load Balancing AE"; junos:must "(!("link-speed mixed"))"; junos:must-message "Resilient-hash AE is not supported along with Mixed-rate mode"; junos:must "(!("load-balance adaptive"))"; junos:must-message "Resilient-hash AE is not supported along with Adaptive Load balance mode"; type empty; description "Turn on resilient-hash"; } container dlb { junos:must "(!(".. resilient-hash"))"; junos:must-message "Dynamic Load Balancing AE is not supported along with resilient hash"; description "Enable DLB on LAG"; uses apply-advanced; choice mode { leaf per-packet { type empty; description "Per-packet link assignment"; } leaf assigned-flow { type empty; description "Fixed link assignment"; } container flowlet { presence "enable flowlet"; description "Inactivity-based link assignment"; uses apply-advanced; leaf inactivity-interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "16 .. 100000"; } } default "256"; description " Minimum inactivity interval in micro-seconds for link re-assignment"; } } // container flowlet } // choice mode } // container dlb container lacp { description "Link Aggregation Control Protocol configuration"; uses apply-advanced; choice mode { leaf active { type empty; description "Initiate transmission of LACP packets"; } leaf passive { type empty; description "Respond to LACP packets"; } } // choice mode leaf periodic { type enumeration { enum "fast" { value 0; description "Receive packets every second"; } enum "slow" { value 1; description "Receive packets every 30 seconds"; } } description "Timer interval for periodic transmission of LACP packets"; } leaf multiplier { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "3 .. 30"; } } description "LACP timeout detection multiplier"; } container link-protection { junos:must "(!(".. .. link-protection"))"; junos:must-message "LACP and non LACP based link-protection not allowed together"; presence "enable link-protection"; uses apply-advanced; leaf disable { type empty; description "To turn off LACP link-protection"; } choice mode { leaf revertive { type empty; description "Switch links when better priority link comes up"; } leaf non-revertive { type empty; description "Do not switch links when better priority link comes up"; } } // choice mode container rtg-config { presence "enable rtg-config"; description "RTG Feature enable on AE"; uses apply-advanced; leaf preempt-cutover-timer { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } default "1"; description "RTG preempt-cutover-timer in seconds"; } } // container rtg-config } // container link-protection leaf sync-reset { type enumeration { enum "disable" { value 0; description "To disable minimum-link failure handling at LACP level"; } enum "enable" { value 1; description "To enable minimum-link failure handling at LACP level"; } } description "On minimum-link failure notify out of sync to peer"; } leaf system-priority { type string; description "Priority of the system (0 ... 65535)"; } leaf system-id { type jt:mac-addr; description "Node's System ID, encoded as a MAC address"; } leaf admin-key { type union { type uint16; type string { pattern "<.*>|$.*"; } } description "Node's administrative key"; } container hold-time { description "Hold time for link up and link down for AE link members"; leaf up { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 6000"; } } units "seconds"; description "Link up hold time for the AE link members"; } } // container hold-time leaf aggregate-wait-time { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "2 .. 1800"; } } units "seconds"; description "Aggregate wait time for the AE"; } leaf force-up { type empty; description "Forceup AE interface with LACP"; } leaf no-peer-loopback-validation { junos:must "(".. force-up")"; junos:must-message "LACP force-up must be configured for no-peer-loopback-validation"; junos:must "(".. .. mc-ae")"; junos:must-message "MC-AE must be configured for no-peer-loopback-validation"; type empty; description "Skip MCLAG peer loop back validation for LACP PDUs on Forceup AE interface"; } } // container lacp list link-protection-sub-group { key "name"; ordered-by user; description "Link Protection subgroup configuration"; leaf name { type string { length "2 .. 64"; } description "Name of the subgroup"; } uses apply-advanced; choice type { leaf primary { type empty; description "Primary subgroup for N:N link-protection mode"; } leaf backup { type empty; description "Backup subgroup for N:N link-protection mode"; } } // choice type } // list link-protection-sub-group container ethernet-switch-profile { description "Ethernet virtual LAN/media access control-level options"; uses apply-advanced; leaf-list tag-protocol-id { type string; ordered-by user; description "IEEE 802.1q Tag Protocol Identifier values for VLAN-tagged frames"; } container storm-control { description "Storm control profile name to bind"; uses apply-advanced; leaf profile-name { junos:must "("forwarding-options storm-control-profiles $$")"; junos:must-message "Storm profile name must be defined in the [edit forwarding-options storm-control-profiles] hierarchy"; type string; description "Profile name"; } } // container storm-control container recovery-timeout { description "Recovery timeout for this interface"; leaf time-in-seconds { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "10 .. 3600"; } } units "seconds"; } } // container recovery-timeout leaf mac-learn-enable { type empty; description "Learn MAC addresses dynamically"; } } // container ethernet-switch-profile container mc-ae { junos:must "(!((".. link-protection" || ".. lacp link-protection")))"; junos:must-message "MC-AE and link-protection on AE can not co-exist"; junos:must "(".. lacp admin-key")"; junos:must-message "LACP admin-key must be configured for MC-AE"; junos:must "(".. lacp system-id")"; junos:must-message "LACP system-id must be configured for MC-AE"; junos:must "(!(".. .. encapsulation vlan-ccc"))"; junos:must-message "Encapsulation vlan-ccc is not supported with MC-AE"; description "Multi-chassis aggregation (MC-AE) network device configuration"; uses apply-advanced; leaf mc-ae-id { junos:must "(unique "interfaces <*> aggregated-ether-options mc-ae mc-ae-id $$")"; junos:must-message "MC-AE id alredy being used"; type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 65535"; } } description "MC-AE group id"; } leaf redundancy-group { junos:must "((any "protocols iccp peer <*> redundancy-group-id-list $$" || any "logical-systems <*> protocols iccp peer <*> redundancy-group-id-list $$"))"; junos:must-message "The redundancy group must match with one defined at <protocols iccp peer redundancy-group-id-list>"; type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 4294967294"; } } default "1"; description "Redundancy group id"; } leaf chassis-id { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "0 .. 1"; } } description "Chassis id of MC-AE network device"; } leaf mode { type enumeration { enum "active-active" { junos:must "(!(any "interfaces ${interface} unit <*> family inet6"))"; junos:must-message "family inet6 is not supported with MC-AE active-active"; junos:must "(!(any "interfaces ${interface} unit <*> family inet"))"; junos:must-message "family inet is not supported with MC-AE active-active"; value 0; description "MC-AE in active-active mode"; } } description "Mode of the MC-AE"; } leaf status-control { type enumeration { enum "active" { value 0; description "Chassis is Active"; } enum "standby" { value 1; description "Chassis is Standby"; } } description "Status of the MC-AE chassis"; } leaf switchover-mode { type enumeration { enum "revertive" { junos:must "(".. .. mc-ae mode active-standby")"; junos:must-message "Only Supported in Active-Standby mode."; junos:must "(!(".. .. mc-ae status-control standby"))"; junos:must-message "Supported only when status control is Active"; value 0; description "Switch mcae node when preferred link comes up"; } enum "non-revertive" { junos:must "(".. .. mc-ae mode active-standby")"; junos:must-message "Only Supported in Active-Standby mode."; junos:must "(".. .. mc-ae status-control active")"; junos:must-message "Supported only when status control is Active"; value 1; description "Do not switch mcae node when preferred link comes up"; } } description "Switchover mode"; } leaf revert-time { junos:must "(".. .. mc-ae mode active-standby")"; junos:must-message "Only Supported in Active-Standby mode."; junos:must "(".. .. mc-ae status-control active")"; junos:must-message "Supported only when status control is Active"; type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 10"; } } units "minute"; default "3"; description "Wait interval before performing switchover"; } leaf init-delay-time { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 6000"; } } units "seconds"; description "Init delay timer for mcae sm for min traffic loss"; } leaf recovery-delay-time { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 6000"; } } units "seconds"; description "Delay timer for bringing up ICL, ICCP"; } leaf enhanced-convergence { junos:must "(".. .. mc-ae mode active-active")"; junos:must-message "Only Supported in MCAE active-active mode."; type empty; description "Optimized convergence time for mcae"; } container events { presence "enable events"; description "MCAE related events"; uses apply-advanced; container iccp-peer-down { presence "enable iccp-peer-down"; description "Define behavior in the event of ICCP peer down"; uses apply-advanced; leaf force-icl-down { type empty; description "Bring down ICL logical interface"; } leaf prefer-status-control-active { type empty; description "Keep this node up (recommended only on status-control active)"; } } // container iccp-peer-down } // container events } // container mc-ae } // container aggregated-ether-options container es-options { description "ES PIC interface-specific options"; uses apply-advanced; leaf backup-interface { type union { type jt:interface-device; type string { pattern "<.*>|$.*"; } } description "Name of backup interface"; } } // container es-options container vdsl-options { description "VDSL interface-specific options"; uses apply-advanced; leaf vdsl-profile { type enumeration { enum "auto" { value 0; description "Auto"; } enum "8a" { value 1; description "Profile 8a"; } enum "8b" { value 2; description "Profile 8b"; } enum "8c" { value 3; description "Profile 8c"; } enum "8d" { value 4; description "Profile 8d"; } enum "12a" { value 5; description "Profile 12a"; } enum "12b" { value 6; description "Profile 12b"; } enum "17a" { value 7; description "Profile 17a"; } } description "VDSL profile"; } leaf sra { type enumeration { enum "enable" { value 0; description "Enable SRA"; } enum "disable" { value 1; description "Disable SRA"; } } default "disable"; description "DSL SRA"; } leaf v43 { type enumeration { enum "enable" { value 0; description "Enable V43"; } enum "disable" { value 1; description "Disable V43"; } } default "enable"; description "DSL V43 tones"; } leaf sos { type empty; description "Enable SOS"; } } // container vdsl-options container dsl-sfp-options { description "DSL SFP options"; uses apply-advanced; container adsl-options { description "ADSL options"; uses apply-advanced; leaf vpi { junos:must "(".. vci")"; junos:must-message "vci must be specified"; type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Virtual path identifier"; } leaf vci { junos:must "(".. vpi")"; junos:must-message "vpi must be specified"; type union { type string { pattern "<.*>|$.*"; } type uint32 { range "32 .. 65535"; } } description "Virtual circuit identifier"; } leaf encap { junos:must "((".. vci" && ".. vpi"))"; junos:must-message "vci and vpi must be specified"; type enumeration { enum "bypass" { value 0; description "Bypass"; } enum "llcsnap-bridged-802dot1q" { value 1; description "LLCSNAP bridged 802.1q"; } enum "llcsnap-routed-ip" { value 2; description "LLCSNAP routed ip"; } enum "vc-mux-bridged" { value 3; description "VC MUX bridged"; } enum "vc-mux-routed-ip" { value 4; description "VC MUX routed ip"; } enum "generic" { value 5; description "Generic"; } } description "Encapsulation"; } leaf annex { junos:must "((".. vci" && ".. vpi"))"; junos:must-message "vci and vpi must be specified"; type enumeration { enum "auto" { value 0; description "Annex type auto"; } enum "annexj-off" { value 1; description "Annex type annexj turn off"; } } description "Annex type"; } } // container adsl-options container vdsl-options { description "VDSL options"; uses apply-advanced; leaf profile { type enumeration { enum "auto" { value 0; description "Automatic"; } enum "8a" { value 1; description "Profile 8a"; } enum "8b" { value 2; description "Profile 8b"; } enum "8c" { value 3; description "Profile 8c"; } enum "8d" { value 4; description "Profile 8d"; } enum "12a" { value 5; description "Profile 12a"; } enum "12b" { value 6; description "Profile 12b"; } enum "17a" { value 7; description "Profile 17a"; } enum "30a" { value 8; description "Profile 30a"; } } description "VDSL profile"; } leaf carrier { type enumeration { enum "auto" { value 0; description "Automatic"; } enum "a43" { value 1; description "Carrier A43"; } enum "b43" { value 2; description "Carrier B43"; } } description "Carrier setting"; } } // container vdsl-options container gfast-options { description "G.fast options"; uses apply-advanced; leaf carrier { type enumeration { enum "a43" { value 0; description "Carrier A43"; } enum "a43c" { value 1; description "Carrier A43C"; } enum "b43" { value 2; description "Carrier B43"; } enum "b43c" { value 3; description "Carrier B43C"; } } description "Carrier setting"; } } // container gfast-options } // container dsl-sfp-options container shdsl-options { junos:must "(!("interfaces ${interface} vdsl-options"))"; junos:must-message "VDSL options cannot co-exist with SHDSL options on the same interface"; junos:must "(!("interfaces ${interface} dsl-options"))"; junos:must-message "DSL options cannot co-exist with SHDSL options on the same interface"; description "SHDSL interface-specific options"; uses apply-advanced; leaf annex { type enumeration { enum "annex-a" { value 0; description "Annex-a PIC"; } enum "annex-b" { value 1; description "Annex-b PIC"; } enum "annex-f" { value 2; description "Annex-f PIC"; } enum "annex-g" { value 3; description "Annex-g PIC"; } enum "annex-auto" { value 4; description "Annex-auto PIC"; } } default "annex-b"; description "Type of SHDSL annex"; } leaf line-rate { type string; description "SHDSL line rate"; } leaf loopback { type enumeration { enum "local" { value 0; description "Local loopback"; } enum "remote" { value 1; description "Remote loopback"; } } description "Loopback mode"; } container snr-margin { presence "enable snr-margin"; description "Signal to noise ratio margin"; uses apply-advanced; leaf current { type string; units "dB"; description "Current signal to noise ratio margin"; } leaf snext { type string; units "dB"; description "SNEXT signal to noise ratio margin"; } } // container snr-margin } // container shdsl-options container container-options { description "Container interface specific options"; uses apply-advanced; container container-type { presence "enable container-type"; description "Protocol type of the container interface"; uses apply-advanced; choice container-type-choice { container aps { junos:must "((".. .. member-interface-type sonet" || (".. .. member-interface-type atm" || (".. .. member-interface-type channelized-sonet" || ".. .. member-interface-type channelized-sdh"))))"; junos:must-message "APS can be enabled on Sonet, Channelized-Sonet, Channelized-SDH or ATM interfaces only"; presence "enable aps"; description "APS options on the container"; uses aps_type; } // container aps } // choice container-type-choice } // container container-type container member-interface-type { description "Link type of members of container"; uses apply-advanced; choice member_interface_type_choice { container sonet { uses apply-advanced; leaf member-interface-speed { type enumeration { enum "oc3" { value 0; description "Links are OC-3"; } enum "oc12" { value 1; description "Links are OC-12"; } enum "oc48" { value 2; description "Links are OC-48"; } enum "oc192" { value 3; description "Links are OC-192"; } enum "oc768" { value 4; description "Links are OC-768"; } enum "mixed" { value 5; description "Links are of different speeds"; } } description "Link speed of members of container"; } } // container sonet container atm { uses apply-advanced; leaf member-interface-speed { type enumeration { enum "oc3" { value 0; description "Links are OC-3"; } enum "oc12" { value 1; description "Links are OC-12"; } enum "oc48" { value 2; description "Links are OC-48"; } } description "Link speed of members of container"; } } // container atm container channelized-sonet { uses apply-advanced; leaf member-interface-speed { type enumeration { enum "coc3" { value 0; description "Links are COC-3"; } enum "coc12" { value 1; description "Links are COC-12"; } enum "coc48" { value 2; description "Links are COC-48"; } enum "coc192" { value 3; description "Links are COC-192"; } enum "coc768" { value 4; description "Links are COC-768"; } } description "Link speed of members of container"; } } // container channelized-sonet container channelized-sdh { uses apply-advanced; leaf member-interface-speed { type enumeration { enum "cstm1" { value 0; description "Links are cstm-1"; } enum "cstm4" { value 1; description "Links are cstm-4"; } enum "cstm16" { value 2; description "Links are cstm-16"; } enum "coc64" { value 3; description "Links are cstm-64"; } enum "cstm256" { value 4; description "Links are cstm256"; } } description "Link speed of members of container"; } } // container channelized-sdh } // choice member_interface_type_choice } // container member-interface-type container redundancy { description "Container interface redundancy options"; uses apply-advanced; container hold-time { description "Hold time for link up and link down"; leaf up { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 65534"; } } units "milliseconds"; description "Link up hold time"; } leaf down { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 65534"; } } units "milliseconds"; description "Link down hold time"; } } // container hold-time } // container redundancy leaf-list container-list { type union { type jt:interface-device; type string { pattern "<.*>|$.*"; } } ordered-by user; description "List of container interfaces this member link is associated to"; } choice redundancy-type { choice aps-redundancy { leaf primary { type empty; description "This member link is primary interface of the container"; } leaf standby { type empty; description "This member link is standby interface of the container"; } } // choice aps-redundancy } // choice redundancy-type leaf fast-aps { type empty; description "Fast APS switch"; } leaf allow-configuration-override { type empty; description "Allow physical configuration of member link to override container configuration"; } } // container container-options container layer2-policer { description "Layer2 policing for interface"; uses apply-advanced; choice layer2-input-policer-choice { leaf input-policer { junos:must "(!("firewall policer $$ then forwarding-class"))"; junos:must-message "Forwarding class cannot be modified for Layer 2 policer"; junos:must "(!("firewall policer $$ then loss-priority medium-low"))"; junos:must-message "Loss priority 'medium-low' is not valid for Layer 2 policer"; junos:must "(!("firewall policer $$ then loss-priority low"))"; junos:must-message "Loss priority 'low' is not valid for Layer 2 policer"; junos:must "("firewall policer $$ physical-interface-policer")"; junos:must-message "Layer 2 policer must be a physical interface policer"; type string; description "Two-color policer for received packets"; } leaf input-hierarchical-policer { type string; description "Hierarchical policer for received packets"; } } // choice layer2-input-policer-choice } // container layer2-policer list unit { key "name"; description "Logical interface"; leaf name { type string; } uses apply-advanced; leaf alias { junos:must "(!("interfaces interface-range $$"))"; junos:must-message "Interface alias cannot be an existing interface range name"; type string; description "Interface alias"; } leaf enhanced-convergence { type empty; description "Optimize convergence time for L3"; } leaf proxy-macip-advertisement { type empty; description "Proxy advertisement of type 2 MAC+IP route for EVPN"; } leaf virtual-gateway-accept-data { type empty; description "Accept packets destined for virtual gateway address"; } container peer-psd { presence "enable peer-psd"; description "Peer psd"; leaf psd-name { junos:must "(".. .. peer-interface")"; junos:must-message "peer-interface must be configured on this interface"; type string; description "Peer psd name"; } } // container peer-psd container peer-interface { presence "enable peer-interface"; description "Peer interface"; uses apply-advanced; leaf interface-name { junos:must "((".. .. peer-psd" || "interfaces $$-IFL peer-interface"))"; junos:must-message "Peer interface or peer psd must be configured"; type union { type jt:interface-unit; type string { pattern "<.*>|$.*"; } } description "Peer interface name"; } } // container peer-interface container interface-shared-with { junos:must "("chassis system-domains")"; junos:must-message "Chassis system-domains must be configured"; presence "enable interface-shared-with"; description "Specify which PSD owns this logical interface"; uses apply-advanced; leaf psd-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)"; } } // container interface-shared-with choice enable-disable { leaf disable { type empty; description "Disable this logical interface"; } } // choice enable-disable leaf passive-monitor-mode { type empty; description "Use interface to tap packets from another router"; } container account-layer2-overhead { presence "enable account-layer2-overhead"; description "Account layer2 overhead in IFL byte statistics"; uses apply-advanced; leaf overhead-value { junos:must "((!(".. ingress") && !(".. egress")))"; junos:must-message "Do not use the options ingress or egress when adjust values are specified"; type union { type string { pattern "<.*>|$.*"; } type int8 { range "-128 .. 127"; } } units "bytes"; description "Layer2 overhead bytes to be accounted in ingress and egress"; } leaf ingress { type union { type string { pattern "<.*>|$.*"; } type int8 { range "-128 .. 127"; } } units "bytes"; description "Layer2 overhead bytes to be accounted in ingress"; } leaf egress { type union { type string { pattern "<.*>|$.*"; } type int8 { range "-128 .. 127"; } } units "bytes"; description "Layer2 overhead bytes to be accounted in egress"; } } // container account-layer2-overhead leaf clear-dont-fragment-bit { type empty; description "Clear DF bit in packet (AS PIC and J-series only as well as MIF)"; } leaf description { type string; description "Text description of interface"; } leaf metadata { type string; description "Text metadata attached to interface"; } leaf encapsulation { type enumeration { enum "atm-nlpid" { value 0; description "ATM NLPID encapsulation"; } enum "atm-cisco-nlpid" { value 1; description "Cisco-compatible ATM NLPID encapsulation"; } enum "atm-snap" { value 2; description "ATM LLC/SNAP encapsulation"; } enum "atm-vc-mux" { value 3; description "ATM VC multiplexing"; } enum "atm-ccc-vc-mux" { value 4; description "ATM VC for CCC"; } enum "atm-tcc-vc-mux" { value 5; description "ATM VC for translational cross-connect"; } enum "atm-tcc-snap" { value 6; description "ATM LLC/SNAP for translational cross-connect"; } enum "atm-ccc-cell-relay" { value 7; description "ATM cell relay for CCC"; } enum "vlan-vci-ccc" { value 8; description "CCC for VLAN Q-in-Q and ATM VPI/VCI interworking"; } enum "ether-over-atm-llc" { value 9; description "Ethernet over ATM (LLC/SNAP) encapsulation"; } enum "ether-vpls-over-atm-llc" { value 10; description "Ethernet VPLS over ATM (bridging) encapsulation"; } enum "ppp-over-ether-over-atm-llc" { value 11; description "PPPoE over ATM (LLC/SNAP) encapsulation"; } enum "ppp-over-ether" { junos:must "(!("forwarding-options hyper-mode"))"; junos:must-message "To configure encapsulation ppp-over-ether, 'forwarding-options hyper-mode' should not be configured"; junos:must "(!(".. family"))"; junos:must-message "Can't configure protocol family with encapsulation ppp-over-ether"; value 12; description "PPPoE encapsulation"; } enum "atm-ppp-vc-mux" { value 13; description "ATM PPP over raw AAL5"; } enum "atm-ppp-llc" { value 14; description "ATM PPP over AAL5/LLC"; } enum "atm-mlppp-llc" { value 15; description "ATM MLPPP over AAL5/LLC"; } enum "frame-relay-ppp" { junos:must "(!(".. family inet6"))"; junos:must-message "family inet6 is not supported on encapsulation frame-relay-ppp"; junos:must "(!(".. family inet"))"; junos:must-message "family inet is not supported on encapsulation frame-relay-ppp"; junos:must "(".. .. encapsulation frame-relay")"; junos:must-message "Physical link-layer encapsulation must be frame-relay"; value 16; description "PPP over Frame Relay"; } enum "frame-relay-ccc" { value 17; description "Frame Relay DLCI for CCC"; } enum "frame-relay" { value 18; description "Frame Relay DLCI"; } enum "frame-relay-tcc" { value 19; description "Frame Relay DLCI for translational cross-connect"; } enum "frame-relay-ether-type" { junos:must "((".. .. encapsulation flexible-frame-relay" || (".. .. encapsulation frame-relay-ether-type" || ".. .. encapsulation frame-relay-ether-type-tcc")))"; junos:must-message "Interface encapsulation must be cisco-compatible or flexible frame relay"; value 20; description "Cisco-compatible Frame Relay Encapsulation DLCI"; } enum "frame-relay-ether-type-tcc" { value 21; description "Cisco-compatible Frame Relay Encapsulation DLCI for TCC"; } enum "ether-vpls-fr" { value 22; description "Ethernet VPLS over Frame Relay (bridging) encapsulation"; } enum "vlan-ccc" { value 23; description "802.1q tagging for a cross-connect"; } enum "ethernet-ccc" { value 24; description "Ethernet for a cross-connect"; } enum "vlan-vpls" { value 25; description "VLAN virtual private LAN service"; } enum "vlan-bridge" { value 26; description "VLAN layer-2 bridging"; } enum "ethernet-tcc" { value 27; description "Ethernet translational cross-connect"; } enum "dix" { value 28; description "Ethernet DIXv2 (RFC 894)"; } enum "ethernet" { value 29; description "Ethernet II (RFC 894)"; } enum "ethernet-vpls" { value 30; description "Ethernet II virtual private LAN service"; } enum "ethernet-bridge" { value 31; description "Ethernet II bridging"; } enum "vlan" { value 32; description "802.1q-tagged Ethernet"; } enum "vlan-tcc" { value 33; description "802.1q tagging for a translational cross-connect"; } enum "multilink-ppp" { value 34; description "Multilink PPP"; } enum "multilink-frame-relay-end-to-end" { value 35; description "Multilink Frame Relay end-to-end (FRF.15)"; } enum "ppp-ccc" { value 36; description "Serial PPP device for a cross-connect"; } } description "Logical link-layer encapsulation"; } leaf mtu { type union { type string { pattern "<.*>|$.*"; } type uint32; } description "Maximum transmission unit packet size"; } choice pointedness { leaf point-to-point { type empty; description "Point-to-point connection"; } leaf multipoint { type empty; description "Multipoint connection"; } } // choice pointedness leaf bandwidth { type string; description "Logical unit bandwidth (informational only)"; } leaf global-layer2-domainid { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "5 .. 4094"; } } description "Global Layer-2 Identifier for this interface"; } choice traps-choice { leaf traps { type empty; description "Enable SNMP notifications on state changes"; } leaf no-traps { type empty; description "Don't enable SNMP notifications on state changes"; } } // choice traps-choice choice routing-services-choice { leaf routing-services { type empty; status deprecated; description "Enable routing services"; } leaf no-routing-services { type empty; status deprecated; description "Don't enable routing services"; } } // choice routing-services-choice container routing-service { description "Routing Services on this interface"; uses apply-advanced; choice enable-disable { leaf enable { type empty; description "Enable Routing Service"; } leaf disable { type empty; description "Disable Routing Service"; } } // choice enable-disable } // container routing-service container arp-resp { presence "enable arp-resp"; description "Knob to control ARP response on the interface, default is restricted"; choice arp-response-options { leaf unrestricted { type empty; description "Enable unrestricted ARP respone on the interface"; } leaf restricted { type empty; description "Enable restricted proxy ARP response on the interface"; } } // choice arp-response-options } // container arp-resp container proxy-arp { junos:must "(!("switch-options no-arp-trap "))"; junos:must-message "Cannot enable proxy ARP with no-arp-trap"; presence "enable proxy-arp"; description "Enable proxy ARP on the interface, default is unrestricted"; choice proxyarp-options { leaf unrestricted { type empty; description "Enable unrestricted proxy ARP on the interface"; } leaf restricted { type empty; description "Enable restricted proxy ARP on the interface"; } } // choice proxyarp-options } // container proxy-arp choice vlan_choice { leaf vlan-id { junos:must "(!("interfaces ${interface} stacked-vlan-tagging"))"; junos:must-message "vlan-id is not supported on stacked-vlan-tagging mode"; type string; description "Virtual LAN identifier value for 802.1q VLAN tags"; } leaf vlan-id-range { junos:must "(("interfaces ${interface} vlan-tagging" || "interfaces ${interface} flexible-vlan-tagging"))"; junos:must-message "valid only with vlan-tagging or flexible-vlan-tagging mode"; type jt:vlan-range; description "Virtual LAN identifier range of form vid1-vid2"; } leaf-list inner-vlan-id-swap-ranges { type jt:vlan-range; description "Inner vlan-id swap range(s) of form vid1-vid2 for dynamic L2 VLANs"; } leaf-list vlan-id-list { junos:must "((" .. encapsulation vlan-ccc" || ("interfaces ${interface} encapsulation extended-vlan-ccc" || (" .. encapsulation vlan-vpls" || ("interfaces ${interface} encapsulation extended-vlan-vpls" || (" .. encapsulation vlan-bridge" || "interfaces ${interface} encapsulation extended-vlan-bridge"))))))"; junos:must-message "valid only with ccc/vpls/bridge encapsulation"; junos:must "(("interfaces ${interface} vlan-tagging" || "interfaces ${interface} flexible-vlan-tagging"))"; junos:must-message "valid only with vlan-tagging or flexible-vlan-tagging mode"; type jt:vlan-range; description "List of VLAN identifiers"; } leaf-list vlan-tag { type string; ordered-by user; status deprecated; description "IEEE 802.1q tag list for VLAN tagged frames"; } container vlan-tags { junos:must "((!("interfaces ${interface} vlan-tagging") || !((". inner" || (". inner-range" || ". inner-list")))))"; junos:must-message "inner/inner-range/inner-list is valid only on stacked-vlan-tagging and flexible-vlan-tagging mode"; junos:must "((!("interfaces ${interface} stacked-vlan-tagging") || (". inner" || (". inner-range" || ". inner-list"))))"; junos:must-message "inner/inner-range/inner-list must be defined for stacked-vlan-tagging mode"; junos:must "((".. demux-options" || ("interfaces ${interface} vlan-tagging" || ("interfaces ${interface} stacked-vlan-tagging" || "interfaces ${interface} flexible-vlan-tagging"))))"; junos:must-message "valid only with vlan-tagging, stacked-vlan-tagging or flexible-vlan-tagging mode"; presence "enable vlan-tags"; description "IEEE 802.1q tags"; leaf outer { type string; description "[tpid.]vlan-id, tpid format is 0xNNNN and is optional"; } choice inner_choice { leaf inner { type string; description "[tpid.]vlan-id, tpid format is 0xNNNN and is optional"; } leaf inner-range { type string { junos:posix-pattern "^((0[Xx][0-9A-Fa-f]{4}.){0,1}([1-9][0-9]{0,2}|[1-3][0-9]{3}|40[0-8][0-9]|409[0-4])-([1-9][0-9]{0,2}|[1-3][0-9]{3}|40[0-8][0-9]|409[0-4]))$"; junos:pattern-message "vid in vlan-tag ([0xNNNN.]vid1-vid2) must be 1 to 4094"; } description "[tpid.]vid1-vid2, tpid format is 0xNNNN and is optional"; } leaf-list inner-list { junos:must "((" .. .. encapsulation vlan-ccc" || ("interfaces ${interface} encapsulation extended-vlan-ccc" || (" .. .. encapsulation vlan-vpls" || ("interfaces ${interface} encapsulation extended-vlan-vpls" || (" .. .. encapsulation vlan-bridge" || "interfaces ${interface} encapsulation extended-vlan-bridge"))))))"; junos:must-message "valid only with ccc/vpls/bridge encapsulation"; type jt:vlan-range; description "List of VLAN identifiers"; } } // choice inner_choice } // container vlan-tags } // choice vlan_choice leaf native-inner-vlan-id { junos:must "((".. vlan-tags" || ".. family bridge inner-vlan-id-list"))"; junos:must-message "native-inner-vlan-id can be specified only on a dual vlan tagged unit"; junos:must "("interfaces ${interface} flexible-vlan-tagging")"; junos:must-message "native-inner-vlan-id can be specified only with flexible-vlan-tagging mode"; type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 4094"; } } description "Native virtual LAN identifier for singly tagged frames"; } container accept-source-mac { junos:must "(".. family ethernet-switching")"; junos:must-message "source mac filters are allowed only on interfaces with family ethernet-switching"; description "Remote media access control address to/from which to accept traffic"; uses apply-advanced; list mac-address { key "name"; description "Remote MAC address"; uses mac_list; } // list mac-address } // container accept-source-mac container input-vlan-map { description "VLAN map operation on input"; uses vlan_map; } // container input-vlan-map container output-vlan-map { description "VLAN map operation on output"; uses vlan_map; } // container output-vlan-map leaf swap-by-poppush { type empty; description "Pop original vlan tag and then push a new vlan tag"; } leaf receive-lsp { type string; description "Name of incoming label-switched path"; } leaf transmit-lsp { type string; description "Name of outgoing label-switched path"; } leaf dlci { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 1022"; } } description "Frame Relay data-link control identifier"; } leaf multicast-dlci { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 1022"; } } description "Frame Relay data-link control identifier for multicast packets"; } choice vci_type { leaf vci { junos:must "(!(".. encapsulation vlan-vci-ccc"))"; junos:must-message "'vci-range' must be used with encapsulation vlan-vci-ccc"; type jt:atm-vci; description "ATM point-to-point virtual circuit identifier ([vpi.]vci)"; } leaf allow-any-vci { type empty; description "Allow all VCIs to open in atm-ccc-cell-relay mode"; } leaf vpi { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "ATM point-to-point virtual path identifier (vpi)"; } leaf trunk-id { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 31"; } } description "ATM trunk identifier"; } } // choice vci_type leaf no-vpivci-swapping { junos:must "(".. encapsulation atm-ccc-cell-relay")"; junos:must-message "encapsulation must be atm-ccc-cell-relay"; type empty; description "Do not swap VPI/VCI for Cell Relay"; } choice psn_vci_type { leaf psn-vci { junos:must "(".. encapsulation atm-ccc-cell-relay")"; junos:must-message "encapsulation must be atm-ccc-cell-relay"; junos:must "(!(".. no-vpivci-swapping"))"; junos:must-message "no-vpivci-swapping must not be configured"; type jt:atm-vci; description "PSN VCI"; } leaf psn-vpi { junos:must "(".. encapsulation atm-ccc-cell-relay")"; junos:must-message "encapsulation must be atm-ccc-cell-relay"; junos:must "(!(".. no-vpivci-swapping"))"; junos:must-message "no-vpivci-swapping must not be configured"; type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "PSN VPI"; } } // choice psn_vci_type container atm-l2circuit-mode { description "Select ATM Layer 2 circuit transport mode"; choice mode_choice { leaf cell { type empty; description "ATM Layer 2 circuit cell mode"; } leaf aal5 { type empty; description "ATM Layer 2 circuit AAL5 mode"; } } // choice mode_choice } // container atm-l2circuit-mode container vci-range { junos:must "(!(".. vci"))"; junos:must-message "'vci-range' and 'vci' statements cannot co-exist"; description "ATM VCI range start <start-vci> end <end-vci>"; leaf start { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "32 .. 4094"; } } description "ATM VCI range's start value"; } leaf end { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "32 .. 4094"; } } description "ATM VCI range's end value"; } } // container vci-range leaf trunk-bandwidth { type string; units "bits per second"; description "ATM trunk bandwidth"; } leaf multicast-vci { type jt:atm-vci; description "ATM virtual circuit identifier for multicast packets"; } container shaping { description "Virtual circuit traffic-shaping options"; uses dcd_shaping_config; } // container shaping container oam-period { description "OAM cell period"; choice oam_period_choices { leaf oam-period { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 900"; } } units "seconds"; description "OAM cell period"; } container disable { presence "enable disable"; description "Disable F5 OAM loopback"; } // container disable } // choice oam_period_choices } // container oam-period container oam-liveness { description "OAM virtual circuit liveness parameters"; uses apply-advanced; leaf up-count { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 255"; } } description "Number of OAM cells to consider VC up"; } leaf down-count { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 255"; } } description "Number of OAM cells to consider VC down"; } } // container oam-liveness container ppp-options { description "Point-to-Point Protocol interface-specific options"; uses ppp_options_type; } // container ppp-options container pppoe-options { description "PPP over Ethernet interface-specific options"; uses pppoe_options_type; } // container pppoe-options choice keepalive_choices { container keepalives { presence "enable keepalives"; description "Send or demand keepalive messages"; uses keepalives_type; } // container keepalives leaf no-keepalives { type empty; description "Do not send or demand keepalive messages"; } } // choice keepalive_choices leaf inverse-arp { type empty; description "Enable inverse ARP"; } leaf transmit-weight { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 32767"; } } description "ATM2 transmit weight for VC under VP tunnel"; } container epd-threshold { description "Early packet discard threshold for ATM2"; uses epd_threshold_config; } // container epd-threshold leaf cell-bundle-size { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 176"; } } units "cells"; description "L2 circuit cell bundle size"; } leaf cell-bundle-timeout { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 512"; } } units "microseconds"; description "L2 circuit cell bundle timeout"; } leaf plp-to-clp { type empty; description "Enable ATM2 PLP to CLP copy"; } leaf atm-scheduler-map { type union { type string { pattern "default"; } type string; } description "Assign ATM2 CoS scheduling map"; } leaf mrru { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1500 .. 4500"; } } units "bytes"; description "Maximum received reconstructed unit"; } leaf short-sequence { type empty; description "Short sequence number header format (MLPPP only)"; } leaf fragment-threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "64 .. 4500"; } } units "bytes"; description "Fragmentation threshold"; } leaf drop-timeout { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "0 .. 2000"; } } units "milliseconds"; description "Drop timeout"; } leaf disable-mlppp-inner-ppp-pfc { type empty; description "Disable compression for inner PPP header in MLPPP payload"; } leaf minimum-links { type union { type string { pattern "<.*>|$.*"; } type uint16; } description "Minimum number of links to sustain the bundle"; } leaf multilink-max-classes { type union { type string { pattern "<.*>|$.*"; } type uint16; } description "Number of multilink classes"; } leaf interleave-fragments { type empty; description "Interleave long packets with high priority ones"; } leaf link-layer-overhead { type jt:unsigned-float; description "Link layer bit stuffing overhead (0.0 .. 50.0 percent)"; } leaf accounting-profile { junos:must "(("accounting-options interface-profile $$" || "accounting-options flat-file-profile $$"))"; junos:must-message "referenced accounting profile must be defined"; type string; description "Accounting profile name"; } leaf peer-unit { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 16385"; } } description "Peer unit number"; } container tunnel { description "Tunnel parameters"; uses apply-advanced; container encapsulation { presence "enable encapsulation"; description "Encapsulation over tunnel"; container vxlan-gpe { junos:must "((!(".. udp") && !(".. ipip")))"; junos:must-message "Only one encapsulation can be set per IFL"; presence "enable vxlan-gpe"; uses apply-advanced; container source { uses apply-advanced; leaf address { junos:must "(!(".. interface"))"; junos:must-message "To configure address interface must be not set"; type jt:ipv4addr; description "Interface address prefix"; } leaf mac-address { type jt:mac-addr; description "Interface source mac address"; } leaf interface { type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Name of the interface"; } } // container source container destination { uses apply-advanced; leaf address { type jt:ipv4addr; description "Interface address prefix"; } leaf mac-address { type jt:mac-addr; description "Interface destination mac address"; } } // container destination leaf tunnel-endpoint { type enumeration { enum "vxlan" { value 0; description "To configure vxlan tunnel-end-point"; } } description "Tunnel end point type"; } leaf destination-udp-port { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65535"; } } description "Value to write to the destination-udp-port field"; } leaf vni { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 16777214"; } } description "Value to write to the vni field"; } } // container vxlan-gpe container udp { junos:must "((!(".. .. .. family ccc") && !(".. .. .. family tcc")))"; junos:must-message "Only inet, inet6, mpls, iso families allowed for udp tunnel in encap mode"; junos:must "((!(".. vxlan-gpe") && (!(".. ipip") && !("..gre"))))"; junos:must-message "Only one encapsulation can be set per IFL"; presence "enable udp"; description "Family for tunnel encapsulation udp"; uses apply-advanced; container source { uses apply-advanced; leaf address { junos:must "(!(".. interface"))"; junos:must-message "To configure address interface must be not set"; type jt:ipv4addr; description "Interface address prefix"; } leaf interface { type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Name of the interface"; } } // container source container destination { uses apply-advanced; leaf address { type jt:ipv4addr; description "Interface address prefix"; } } // container destination } // container udp container ipip { junos:must "((!(".. .. .. family ccc") && (!(".. .. .. family tcc") && !(".. .. .. family iso"))))"; junos:must-message "Only inet, inet6, mpls families allowed for ipip tunnel in decap/encap mode"; junos:must "((!(".. udp") && (!(".. vxlan-gpe") && !(".. gre"))))"; junos:must-message "Only one encapsulation can be set per IFL"; presence "enable ipip"; description "Family for tunnel encapsulation ipip"; uses apply-advanced; container source { uses apply-advanced; leaf address { junos:must "(!(".. interface"))"; junos:must-message "To configure address interface must be not set"; type jt:ipv4addr; description "Interface address prefix"; } leaf interface { type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Name of the interface"; } } // container source container destination { uses apply-advanced; leaf address { type jt:ipv4addr; description "Interface address prefix"; } } // container destination } // container ipip } // container encapsulation leaf source { type jt:ipaddr; description "Tunnel source"; } leaf destination { type jt:ipaddr; description "Tunnel destination"; } leaf key { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 4294967295"; } } description "Tunnel key"; } leaf backup-destination { junos:must "(!(".. destination $$"))"; junos:must-message "Backup and primary tunnel destinations must be different"; type jt:ipaddr; description "Backup tunnel destination"; } choice fragmentation { leaf allow-fragmentation { type empty; description "Do not set DF bit on packets"; } leaf do-not-fragment { type empty; description "Set DF bit on packets"; } } // choice fragmentation leaf ttl { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 255"; } } description "Time to live"; } leaf traffic-class { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "TOS/Traffic class field of IP-header"; } leaf flow-label { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 1048575"; } } description "Flow label field of IP6-header"; } choice path-mtu-discovery-choice { leaf path-mtu-discovery { type empty; description "Enable path MTU discovery for tunnels"; } leaf no-path-mtu-discovery { type empty; description "Don't enable path MTU discovery for tunnels"; } } // choice path-mtu-discovery-choice container routing-instance { description "Routing instance to which tunnel ends belong"; uses apply-advanced; leaf destination { junos:must "(("routing-instances $$" || any "tenants <*> routing-instances $$"))"; junos:must-message "referenced routing-instance must be defined"; type string { junos:posix-pattern "!^((__.*__)|(all)|(.*[ ].*)|("")|(.{129,}))$"; junos:pattern-message "Must be a non-reserved string of 128 characters or less with no spaces."; } description "Routing instance of tunnel destination"; } } // container routing-instance } // container tunnel leaf compression-device { type union { type jt:interface-unit; type string { pattern "<.*>|$.*"; } } description "Logical interface used for compression"; } container atm-policer { junos:must "(".. family")"; junos:must-message "Family must be defined for a unit with atm-policer"; description "ATM policing for logical interface"; uses apply-advanced; leaf input-atm-policer { type string; description "Input atm policer"; } } // container atm-policer container layer2-policer { junos:must "(".. family")"; junos:must-message "Family must be defined for a unit with layer2-policer"; description "Layer2 policing for logical interface"; uses apply-advanced; choice layer2-input-policer-choice { leaf input-policer { junos:must "(!("firewall policer $$ then forwarding-class"))"; junos:must-message "Forwarding class cannot be modified for Layer 2 policer"; junos:must "(!("firewall policer $$ then loss-priority medium-low"))"; junos:must-message "Loss priority 'medium-low' is not valid for Layer 2 policer"; junos:must "(!("firewall policer $$ then loss-priority low"))"; junos:must-message "Loss priority 'low' is not valid for Layer 2 policer"; junos:must "("firewall policer $$ logical-interface-policer")"; junos:must-message "Layer 2 policer must be a logical interface policer"; type string; description "Two-color policer for received packets"; } case case_2 { } // case case_2 leaf input-three-color { junos:must "(("firewall three-color-policer $$ single-rate color-blind" || ("firewall three-color-policer $$ single-packet-rate color-blind" || ("firewall three-color-policer $$ two-rate color-blind" || "firewall three-color-policer $$ two-packet-rate color-blind"))))"; junos:must-message "Layer 2 input three-color policer must be color-blind"; junos:must "("firewall three-color-policer $$ logical-interface-policer")"; junos:must-message "Layer 2 three-color policer must be a logical interface policer"; type string; description "Color-blind three-color policer for received packets"; } } // choice layer2-input-policer-choice choice layer2-output-policer-choice { leaf output-policer { junos:must "(!("firewall policer $$ then forwarding-class"))"; junos:must-message "Forwarding class cannot be modified for Layer 2 policer"; junos:must "(!("firewall policer $$ then loss-priority medium-low"))"; junos:must-message "Loss priority 'medium-low' is not valid for Layer 2 policer"; junos:must "(!("firewall policer $$ then loss-priority low"))"; junos:must-message "Loss priority 'low' is not valid for Layer 2 policer"; junos:must "("firewall policer $$ logical-interface-policer")"; junos:must-message "Layer 2 policer must be a logical interface policer"; type string; description "Two-color policer for transmitted packets"; } leaf output-three-color { junos:must "("firewall three-color-policer $$ logical-interface-policer")"; junos:must-message "Layer 2 three-color policer must be a logical interface policer"; type string; description "Three-color policer for transmitted packets"; } } // choice layer2-output-policer-choice } // container layer2-policer container filter { description "Filters to apply to all families configured under this logical interface"; uses apply-advanced; choice input_choice { container input { description "Name of filter to be applied to received packets"; leaf filter-name { type string; description "Name of the filter"; } leaf shared-name { type string; description "Filter shared-name of instances of interface-shared filter"; } leaf precedence { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Precedence of the filter"; } } // container input } // choice input_choice choice output_choice { container output { description "Name of filter to be applied to transmitted packets"; leaf filter-name { type string; description "Name of the filter"; } leaf shared-name { type string; description "Filter shared-name of instances of interface-shared filter"; } leaf precedence { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Precedence of the filter"; } } // container output } // choice output_choice } // container filter leaf statistics { type empty; description "Enable statistics collection in PFE"; } choice virtual-gateway { leaf no-auto-virtual-gateway-esi { junos:must "((any ".. family inet address <*> virtual-gateway-address" || any ".. family inet6 address <*> virtual-gateway-address"))"; junos:must-message "Only when virtual gateway address is configured"; type empty; description "Disable auto ESI generation for virtual gateway address"; } container virtual-gateway-esi { description "ESI configuration of virtual gateway"; uses apply-advanced; leaf identifier { junos:must "(unique "interfaces <*> unit <*> virtual-gateway-esi $$")"; junos:must-message "virtual-gateway-esi value must be unique under all IFDs and IFLs"; junos:must "(unique "interfaces <*> unit <*> esi $$")"; junos:must-message "ESI value must be unique under all IFDs and IFLs"; type jt:esi; description "ESI value for the interface"; } choice mode { leaf single-active { type empty; description "Single-active mode"; } leaf all-active { type empty; description "All-active mode"; } } // choice mode } // container virtual-gateway-esi } // choice virtual-gateway container service { description "Service operations"; uses apply-advanced; list pcef { key "name"; ordered-by user; description "PCEF configuration"; leaf name { junos:must "((".. family inet service" || ".. family inet6 service"))"; junos:must-message "Must be configured along with a family inet/inet6 service."; type string; description "PCEF Profile name"; } uses apply-advanced; leaf activate-all { junos:must "(!("activate"))"; junos:must-message "Can't be configured with activate-rule or activate- rulebase."; type empty; description "Activate all rules and rulebases in the pcef profile"; } list activate { key "name"; ordered-by user; description "Name of pcef profile rule or rulebase to activate"; leaf name { type string; description "Name of pcef profile rule or rulebase to activate"; } uses apply-advanced; } // list activate } // list pcef } // container service choice generate-eui64-choice { leaf generate-eui64 { junos:must "(".. family inet6 unnumbered-address")"; junos:must-message "generate-eui64 attribute must be set when unnumbered-address is configured under family inet6"; type empty; description "To generate Link Local EUI-64 addresses"; } leaf no-generate-eui64 { junos:must "(".. family inet6 unnumbered-address")"; junos:must-message "generate-eui64 attribute must be set when unnumbered-address is configured under family inet6"; type empty; description "Don't to generate Link Local EUI-64 addresses"; } } // choice generate-eui64-choice container family { junos:must "(!(".. encapsulation ppp-over-ether"))"; junos:must-message "Can't configure protocol family with encapsulation ppp-over-ether"; description "Protocol family"; container inet { junos:must "(!(".. .. .. encapsulation vlan-vpls"))"; junos:must-message "Can't configure protocol family inet with encapsulation vpls"; presence "enable inet"; description "IPv4 parameters"; uses apply-advanced; container dhcp { junos:must "(!(any "forwarding-options dhcp-relay group <*> interface ${interface}.${unit}"))"; junos:must-message "Incompatible with the interface configured under 'forwarding-options dhcp-relay group'"; junos:must "(!("system services dhcp"))"; junos:must-message "Incompatible with the dhcp server configured under 'system services dhcp'"; junos:must "(!("system autoinstallation interfaces"))"; junos:must-message "Incompatible with 'system autoinstallation interfaces'"; junos:must "(!(".. address"))"; junos:must-message "Incompatible with interface assigned with address"; junos:must "(!("system autoinstallation"))"; junos:must-message "Incompatible with 'system autoinstallation'"; presence "enable dhcp"; description "Configure DHCP Client"; uses apply-advanced; container client-identifier { description "DHCP Server identifies a client by client-identifier value "; choice client-identifier-choice { leaf ascii { type string; description "Client identifier as an ASCII string"; } leaf hexadecimal { type string { junos:posix-pattern "^[[:xdigit:]]+$"; junos:pattern-message "Must be hexadecimal digits (0-9, a-f, A-F)"; } description "Client identifier as a hexadecimal string"; } } // choice client-identifier-choice } // container client-identifier leaf lease-time { type string; units "seconds"; description "Default lease time requested in "; } leaf retransmission-attempt { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 6"; } } default "4"; description "Number of attempts to retransmit the DHCP client protocol packet"; } leaf retransmission-interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "4 .. 64"; } } units "seconds"; default "4"; description "Number of seconds between successive retransmission"; } leaf server-address { type jt:ipv4addr; description "DHCP Server-address"; } leaf update-server { type empty; description "Propagate TCP/IP settings to DHCP server "; } leaf vendor-id { type string; description "Vendor class id for the DHCP Client"; } } // container dhcp container targeted-broadcast { presence "enable targeted-broadcast"; description "Directed broadcast"; uses apply-advanced; choice targeted-bcast-choice { leaf forward-and-send-to-re { type empty; description "Allow packets to be forwarded and sent to re"; } leaf forward-only { type empty; description "Allow packets only to be forwarded"; } } // choice targeted-bcast-choice } // container targeted-broadcast leaf destination-class-usage { type empty; status deprecated; description "Enable destination class usage on this interface"; } leaf transit-options-packets { type empty; status deprecated; description "Transit IP options packets (don't send to Routing Engine)"; } leaf transit-ttl-exceeded { type empty; status deprecated; description "Transit IP TTL-exceeded packets (don't send to Routing Engine)"; } leaf receive-options-packets { type empty; description "Receive IP options packets (don't send to Routing Engine)"; } leaf receive-ttl-exceeded { type empty; description "Receive IP TTL-exceeded packets (don't send to Routing Engine)"; } container accounting { description "Configure interface-based accounting options"; uses apply-advanced; container source-class-usage { description "Enable source class usage on this interface"; uses apply-advanced; leaf input { type empty; description "Specify this interface for source-class-usage input"; } leaf output { type empty; description "Specify this interface for source-class-usage output"; } } // container source-class-usage leaf destination-class-usage { type empty; description "Enable destination class usage on this interface"; } } // container accounting leaf mac-validate { type enumeration { enum "strict" { value 0; description "Strict mac-validation"; } enum "loose" { value 1; description "Loose mac-validation"; } } description "Validate source MAC address"; } container rpf-check { presence "enable rpf-check"; description "Enable reverse-path-forwarding checks on this interface"; uses apply-advanced; leaf fail-filter { type string; description "Name of filter applied to packets failing RPF check"; } container mode { description "Mode for reverse path forwarding"; leaf loose { type empty; description "Reverse-path-forwarding loose mode"; } } // container mode } // container rpf-check leaf mtu { type union { type uint32; type string { pattern "<.*>|$.*"; } } description "Protocol family maximum transmission unit"; } leaf arp-max-cache { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 2000000"; } } description "Max interface ARP nexthop cache size"; } leaf arp-new-hold-limit { junos:must "(".. arp-max-cache")"; junos:must-message "Interface max ARP cache size must be configured"; type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 2000000"; } } description "Max no. of new unresolved nexthops"; } leaf no-redirects { type empty; description "Do not redirect traffic"; } leaf no-neighbor-learn { type empty; description "Disable neighbor address learning on interface"; } leaf unconditional-src-learn { type empty; description "Glean from arp packets even when source cannot be validated"; } leaf multicast-only { type empty; description "Allow only multicast traffic (tunnels only)"; } leaf primary { type empty; description "Candidate for primary interface in system"; } leaf ipsec-sa { type string { length "1 .. 32"; } description "Name of security association"; } container filter { description "Packet filtering"; uses apply-advanced; choice input_choice { container input { description "Filter to be applied to received packets"; leaf filter-name { type string; description "Name of the filter"; } leaf shared-name { type string; description "Filter shared-name of instances of interface-shared filter"; } leaf precedence { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Precedence of the filter"; } } // container input leaf-list input-list { type string; ordered-by user; description "List of filter modules applied to received packets "; } } // choice input_choice choice output_choice { container output { description "Filter to be applied to transmitted packets"; leaf filter-name { type string; description "Name of the filter"; } leaf shared-name { type string; description "Filter shared-name of instances of interface-shared filter"; } leaf precedence { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Precedence of the filter"; } } // container output leaf-list output-list { type string; ordered-by user; description "List of filter modules applied to transmitted packets "; } } // choice output_choice container adf { description "Ascend Data Filter definition"; uses apply-advanced; list rule { key "name"; ordered-by user; description "Set of ADF rules"; leaf name { type string; description "Value for a single rule"; } uses apply-advanced; } // list rule leaf counter { type empty; description "Add a counter to each rule"; } leaf input-precedence { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Precedence of the input rules"; } leaf not-mandatory { type empty; description "No errors will be reported if no rules are present"; } leaf output-precedence { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Precedence of the output rules"; } } // container adf leaf group { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 255"; } } description "Group to which interface belongs"; } } // container filter container simple-filter { description "Filter for doing multifield classification"; uses apply-advanced; leaf input { type string; description "Name of simple filter applied to received packets"; } } // container simple-filter container policer { description "Interface policing"; uses apply-advanced; leaf arp { junos:must "(!(".. disable-arp-policer"))"; junos:must-message "Interface configuration can have either disable-arp-policer or arp policer configured"; junos:must "((!(".. .. .. .. peer-unit") || (".. .. .. .. encapsulation ethernet" || ".. .. .. .. encapsulation vlan")))"; junos:must-message "Interface encapsulation must be ethernet or vlan"; type string; description "Name of policer applied to received ARP packets"; } leaf input { junos:must "(!(".. .. input-hierarchical-policer"))"; junos:must-message "Both input policer and input hierarchical policer can not be applied on the same family"; type string; description "Name of policer applied to received packets"; } leaf output { type string; description "Name of policer applied to transmitted packets"; } } // container policer container sampling { junos:must "(("forwarding-options sampling family inet" || ("forwarding-options packet-capture" || any "forwarding-options sampling instance <*> family inet")))"; junos:must-message "Requires forwarding-options sampling or packet-capture config"; description "Interface sampling"; uses apply-advanced; leaf input { type empty; description "Sample all packets input on this interface"; } leaf output { type empty; description "Sample all packets output on this interface"; } } // container sampling list next-hop-tunnel { key "name"; ordered-by user; description "One or more next-hop tunnel tables"; leaf name { type string; description "Next-hop tunnel gateway address"; } uses apply-advanced; leaf ipsec-vpn { junos:must "("security ipsec vpn $$")"; junos:must-message "Referenced IPSec vpn must be defined under [edit security ipsec vpn] hierarchy level"; junos:must "(unique "interfaces st0 unit <*> family inet next-hop-tunnel <*> ipsec-vpn $$")"; junos:must-message "Referenced IPSec vpn must be unique"; type string; description "Name of IPSec VPN"; } } // list next-hop-tunnel container tunnel-termination { presence "enable tunnel-termination"; description "Tunnel termination"; } // container tunnel-termination list address { junos:must "((!(".. unnumbered-address") && !(".. location-pool-address")))"; junos:must-message "address cannot be defined with unnumbered-address or location-pool-address simultaneously"; key "name"; ordered-by user; description "Interface address/destination prefix"; leaf name { type jt:ipv4prefix; description "Interface address/destination prefix"; } uses apply-advanced; leaf destination { type jt:ipv4addr; description "Destination address"; } leaf destination-profile { junos:must "("access group-profile $$ ppp")"; junos:must-message "referenced group-profile must be defined and must contain ppp statement"; type string; description "Profile to use for destination address"; } leaf broadcast { type jt:ipv4addr; description "Broadcast address"; } leaf primary { type empty; description "Candidate for primary address in system"; } leaf preferred { type empty; description "Preferred address on interface"; } leaf master-only { type empty; description "Master management IP address for router"; } list multipoint-destination { key "name"; ordered-by user; description "Multipoint NBMA destination"; leaf name { type jt:ipv4addr; description "Destination address"; } uses apply-advanced; choice link-address { leaf dlci { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 1022"; } } description "Frame Relay data-link control identifier"; } leaf vci { type jt:atm-vci; description "ATM virtual circuit identifier ([vpi.]vci)"; } } // choice link-address container shaping { description "Virtual circuit traffic-shaping options"; uses dcd_shaping_config; } // container shaping container oam-period { description "OAM cell period"; choice oam_period_choices { leaf oam_period { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 900"; } } units "seconds"; description "OAM cell period"; } container disable { presence "enable disable"; description "Disable OAM loopback"; } // container disable } // choice oam_period_choices } // container oam-period container oam-liveness { description "OAM virtual circuit liveness parameters"; uses apply-advanced; leaf up-count { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 255"; } } description "Number of OAM cells to consider VC up"; } leaf down-count { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 255"; } } description "Number of OAM cells to consider VC down"; } } // container oam-liveness leaf inverse-arp { type empty; description "Enable inverse ARP reply messages"; } leaf transmit-weight { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 32767"; } } description "ATM2 transmit weight for VC under VP tunnel"; } container epd-threshold { description "Early packet discard threshold for ATM2"; uses epd_threshold_config; } // container epd-threshold } // list multipoint-destination list arp { key "name"; ordered-by user; description "Static Address Resolution Protocol entries"; leaf name { type jt:ipv4addr; description "Destination IP address"; } leaf l2-interface { type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Layer 2 interface name for ARP entry"; } choice mac_address_type { leaf mac { type jt:mac-unicast; description "MAC address"; } leaf multicast-mac { type jt:mac-multicast; description "Multicast MAC address"; } } // choice mac_address_type leaf publish { junos:must "((".. mac" || ".. multicast-mac"))"; junos:must-message "mac or multicast-mac must be configured to publish"; type empty; description "Reply to ARP requests for this entry"; } } // list arp list host-discovery { junos:must "("system arp proactive-arp-detection ")"; junos:must-message "Proactive ARP Detection feature should be enabled"; key "name"; max-elements 8; ordered-by user; description "Discover servers IP based on subnet range"; leaf name { type jt:ipv4prefix; description "IP address subnet range"; } leaf aging-timer { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "10 .. 1200"; } } description "ARP aging timer"; } leaf discovery-interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "3 .. 300"; } } description "ARP proactive discovery time"; } } // list host-discovery list vrrp-group { key "name"; ordered-by user; description "VRRP group"; uses vrrp-group; } // list vrrp-group leaf virtual-gateway-address { junos:must "(!(".. vrrp-group"))"; junos:must-message "vrrp configuration incompatible with virtual gateway address"; type jt:ipv4addr; description "Virtual Gateway IP address"; } } // list address container unnumbered-address { description "Unnumbered interface address/destination prefix"; leaf source { junos:must "("interfaces $$-IFL family inet address")"; junos:must-message "referred interface must have address configured under family inet"; type union { type jt:interface-unit; type string { pattern "<.*>|$.*"; } } description "Interface from which to take local address"; } leaf preferred-source-address { type string; description "Preferred address on the donor interface"; } leaf destination { type jt:ipv4addr; description "Destination address"; } leaf destination-profile { junos:must "("access group-profile $$ ppp")"; junos:must-message "referenced group-profile must be defined and must contain ppp statement"; type string; description "Profile to use for destination address"; } } // container unnumbered-address leaf negotiate-address { junos:must "(!(".. .. .. .. encapsulation multilink-frame-relay-uni-nni"))"; junos:must-message "negotiate-address is not supported with family mlfr-uni-nni "; junos:must "(!(".. .. .. encapsulation multilink-frame-relay-end-to-end"))"; junos:must-message "negotiate-address is not supported with family mlfr-end-to-end "; junos:must "(!(".. location-pool-address"))"; junos:must-message "negotiate-address and location-pool-address must not be defined simultaneously"; junos:must "(!(".. unnumbered-address"))"; junos:must-message "negotiate-address and unnumbered-address must not be defined simultaneously"; junos:must "(!(".. address"))"; junos:must-message "negotiate-address and address must not be defined simultaneously"; type empty; description "Negotiate address with remote"; } leaf destination-udp-port { junos:must "(".. .. .. tunnel encapsulation udp")"; junos:must-message "destination-udp-port can be configured only for encapsulation udp on fti interface"; type union { type string { pattern "<.*>|$.*"; } type uint32 { range "10000 .. 10009"; } } description "Choose destination UDP port number"; } } // container inet container iso { junos:must "(!(".. .. encapsulation frame-relay-ppp"))"; junos:must-message "family iso is not supported on encapsulation frame-relay-ppp"; presence "enable iso"; description "OSI ISO protocol parameters"; uses apply-advanced; list address { key "name"; ordered-by user; description "Interface address"; leaf name { type jt:isoaddr; description "Interface address"; } uses apply-advanced; } // list address leaf mtu { type union { type uint32; type string { pattern "<.*>|$.*"; } } description "Protocol family maximum transmission unit"; } leaf destination-udp-port { junos:must "(".. .. .. tunnel encapsulation udp")"; junos:must-message "destination-udp-port can be configured only for encapsulation udp on fti interface"; type union { type string { pattern "<.*>|$.*"; } type uint32 { range "10030 .. 10039"; } } description "Choose destination UDP port number"; } } // container iso container inet6 { presence "enable inet6"; description "IPv6 protocol parameters"; uses apply-advanced; container dhcpv6-client { junos:must "(!("system services dhcp"))"; junos:must-message "Incompatible with the dhcp server configured under 'system services dhcp'"; junos:must "(!("system autoinstallation"))"; junos:must-message "Incompatible with 'system autoinstallation'"; junos:must "(!(".. address"))"; junos:must-message "Incompatible with interface assigned with address"; junos:must "(!(any "forwarding-options dhcp-relay dhcpv6 group <*> interface ${interface}.${unit}"))"; junos:must-message "DHCPv6 client and relay cannot be configured on the same interface "; junos:must "(!(any "system services dhcp-local-server dhcpv6 group <*> interface ${interface}.${unit}"))"; junos:must-message "DHCPv6 client and server cannot be configured on the same interface "; description "Dynamic Host Configuration Protocol DHCPv6 client configuration"; uses apply-advanced; leaf client-type { type enumeration { enum "stateful" { value 0; description "Stateful client type for address assignment."; } enum "autoconfig" { junos:must "("protocols router-advertisement interface ${interface}.${unit}")"; junos:must-message "Interface for ra messages is must for auto mode"; junos:must "(!("interfaces ${interface} unit ${unit} family inet6 dhcpv6-client update-router-advertisement"))"; junos:must-message "Incompatible with 'dhcpv6-client update-router-advertisement'"; junos:must "(!("interfaces ${interface} unit ${unit} family inet6 dhcpv6-client client-ia-type ia-pd"))"; junos:must-message "Incompatible with 'client-ia-type ia-pd'"; value 1; description "Autoconfig client type for router-advertisement"; } } description "DHCPv6 client type"; } list client-ia-type { key "name"; ordered-by user; description "DHCPv6 client identity association type"; leaf name { type enumeration { enum "ia-na" { value 0; description "Identity Association-Non-temporary Address"; } enum "ia-pd" { value 1; description "Identity Association-Prefix Address"; } } } uses apply-advanced; } // list client-ia-type container rapid-commit { presence "enable rapid-commit"; description "Option is used to signal the use of the two message exchange for address assignment"; } // container rapid-commit container prefix-delegating { junos:must "("interfaces ${interface} unit ${unit} family inet6 dhcpv6-client client-ia-type ia-pd")"; junos:must-message "Incompatible with out 'client-ia-type ia-pd'"; description "Prefix delegating parameters"; uses apply-advanced; leaf preferred-prefix-length { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 64"; } } description "Client preferred prefix length"; } leaf sub-prefix-length { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 127"; } } description "The sub prefix length for LAN interfaces"; } } // container prefix-delegating container client-identifier { description "DHCP Server identifies a client by client-identifier value "; leaf duid-type { type enumeration { enum "duid-llt" { value 0; description "Link-layer address plus time"; } enum "vendor" { value 1; description "Vendor-assigned unique ID based on Enterprise Number"; } enum "duid-ll" { value 2; description "Link-layer address"; } } description "DUID identifying a client"; } } // container client-identifier leaf vendor-id { type string { length "1 .. 60"; } description "Vendor class id for the dhcpv6 client"; } list req-option { key "name"; ordered-by user; description "DHCPV6 client requested option configuration"; leaf name { type enumeration { enum "dns-server" { value 0; description "Dns-server option"; } enum "domain" { value 1; description "Dns-server option"; } enum "ntp-server" { value 2; description "Ntp-server option"; } enum "time-zone" { value 3; description "Time-zone option"; } enum "sip-server" { value 4; description "Sip-server option"; } enum "sip-domain" { value 5; description "Sip-domain option"; } enum "nis-server" { value 6; description "Nis-server option"; } enum "nis-domain" { value 7; description "Nis-domain option"; } enum "fqdn" { value 8; description "Fully-qualified-domain option"; } enum "vendor-spec" { value 9; description "Vendor-spec option"; } enum "zero-touch-redirect" { value 10; description "Zero-touch-redirect"; } enum "bootfile-url" { value 11; description "Bootfile url"; } enum "bootfile-param" { value 12; description "Bootfile param"; } } } uses apply-advanced; } // list req-option container options { description "DHCP options"; uses apply-advanced; list number { key "name"; description "DHCP option code"; leaf name { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 254"; } } description "DHCP option identifier code"; } choice option-type-choice { leaf hex-string { type string { junos:posix-pattern "^[[:xdigit:]]+$"; junos:pattern-message "Must be hexadecimal digits (0-9, a-f, A-F)"; length "1 .. 510"; } description "Hexadecimal string"; } } // choice option-type-choice } // list number } // container options leaf retransmission-attempt { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 50000"; } } default "9"; description "Number of attempts to retransmit the DHCPV6 client protocol packet"; } } // container dhcpv6-client container rpf-check { presence "enable rpf-check"; description "Enable reverse-path-forwarding checks on this interface"; uses apply-advanced; leaf fail-filter { type string; description "Name of filter applied to packets failing RPF check"; } container mode { description "Mode for reverse path forwarding"; leaf loose { type empty; description "Reverse-path-forwarding loose mode"; } } // container mode } // container rpf-check container accounting { description "Interface-based accounting options"; uses apply-advanced; container source-class-usage { uses apply-advanced; leaf input { type empty; description "Interface for source-class-usage input"; } leaf output { type empty; description "Interface for source-class-usage output"; } } // container source-class-usage leaf destination-class-usage { type empty; description "Enable destination class usage on this interface"; } } // container accounting leaf mtu { type union { type uint32; type string { pattern "<.*>|$.*"; } } description "Protocol family maximum transmission unit"; } leaf nd6-stale-time { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 18000"; } } units "seconds"; description "Stale time to reconfirm reachability with inet6 neighbour"; } leaf no-neighbor-learn { type empty; description "Disable neighbor address learning on interface"; } container ndp-proxy { description "Enable ndp proxy on interface"; uses apply-advanced; leaf interface-restricted { type empty; description "Enable ndp interface proxy restricted to interface"; } } // container ndp-proxy container dad-proxy { junos:must "(".. ndp-proxy")"; junos:must-message "ndp-proxy must be configured"; description "DAD proxy on interface"; uses apply-advanced; leaf interface-restricted { type empty; description "Enable DAD interface proxy restricted to interface"; } } // container dad-proxy leaf nd6-max-cache { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 2000000"; } } description "Max interface ND nexthop cache size"; } leaf nd6-new-hold-limit { junos:must "(".. nd6-max-cache")"; junos:must-message "Interface max ND cache size must be configured"; type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 2000000"; } } description "Max no. of new unresolved nexthops"; } leaf no-redirects { type empty; description "Do not redirect traffic"; } container filter { description "Packet filtering"; uses apply-advanced; choice input_choice { container input { description "Filter to be applied to received packets"; leaf filter-name { type string; description "Name of the filter"; } leaf shared-name { type string; description "Filter shared-name of instances of interface-shared filter"; } leaf precedence { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Precedence of the filter"; } } // container input leaf-list input-list { type string; ordered-by user; description "List of filter modules applied to received packets "; } } // choice input_choice choice output_choice { container output { description "Filter to be applied to transmitted packets"; leaf filter-name { type string; description "Name of the filter"; } leaf shared-name { type string; description "Filter shared-name of instances of interface-shared filter"; } leaf precedence { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Precedence of the filter"; } } // container output leaf-list output-list { type string; ordered-by user; description "List of filter modules applied to transmitted packets "; } } // choice output_choice container adf { description "Ascend Data Filter definition"; uses apply-advanced; list rule { key "name"; ordered-by user; description "Set of ADF rules"; leaf name { type string; description "Value for a single rule"; } uses apply-advanced; } // list rule leaf counter { type empty; description "Add a counter to each rule"; } leaf input-precedence { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Precedence of the input rules"; } leaf not-mandatory { type empty; description "No errors will be reported if no rules are present"; } leaf output-precedence { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Precedence of the output rules"; } } // container adf leaf group { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 255"; } } description "Group to which interface belongs"; } } // container filter container policer { description "Interface policing"; uses apply-advanced; leaf input { type string; description "Name of policer applied to received packets"; } leaf output { type string; description "Name of policer applied to transmitted packets"; } } // container policer container sampling { junos:must "(("forwarding-options sampling family inet6" || ("forwarding-options packet-capture" || any "forwarding-options sampling instance <*> family inet6")))"; junos:must-message "Requires forwarding-options sampling or packet-capture config"; description "Interface sampling"; uses apply-advanced; leaf input { type empty; description "Sample all packets input on this interface"; } leaf output { type empty; description "Sample all packets output on this interface"; } } // container sampling container tunnel-termination { presence "enable tunnel-termination"; description "Tunnel termination"; } // container tunnel-termination list address { junos:must "(!(".. unnumbered-address"))"; junos:must-message "ipv6 unnumbered-address and ipv6 address must not be defined simultaneously"; key "name"; ordered-by user; description "Interface address or destination prefix"; leaf name { type jt:ipv6prefix; description "Interface address or destination prefix"; } uses apply-advanced; leaf destination { type jt:ipv6addr; description "Destination address"; } leaf eui-64 { type empty; description "Generate EUI-64 interface ID"; } leaf primary { type empty; description "Candidate for primary address in system"; } leaf preferred { type empty; description "Preferred address on interface"; } leaf master-only { type empty; description "Master management IP address for router"; } list ndp { key "name"; ordered-by user; description "Static Neighbor Discovery Protocol entries"; leaf name { type jt:ipv6addr; description "Destination IP address"; } leaf l2-interface { type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Layer 2 interface name for NDP entry"; } choice mac_address_type { leaf mac { type jt:mac-unicast; description "MAC address"; } leaf multicast-mac { type jt:mac-multicast; description "Multicast MAC address"; } } // choice mac_address_type leaf publish { junos:must "((".. mac" || ".. multicast-mac"))"; junos:must-message "either 'mac' or 'multicast-mac' must be configured along with 'publish' statment"; type empty; description "Reply to NDP requests for this entry"; } } // list ndp list vrrp-inet6-group { junos:must "(!(".. eui-64"))"; junos:must-message "'vrrp-inet6-group' is not supported when 'eui-64' is configured"; key "name"; ordered-by user; description "VRRP group"; uses vrrp-group; } // list vrrp-inet6-group leaf virtual-gateway-address { junos:must "(!(".. vrrp-inet6-group"))"; junos:must-message "vrrp configuration incompatible with virtual gateway address"; type jt:ipv6addr; description "Virtual Gateway IP address"; } leaf subnet-router-anycast { type empty; description "Create a subnet roter anycast address for this address."; } } // list address container unnumbered-address { description "Unnumbered interface address/destination prefix"; leaf source { junos:must "("interfaces $$-IFL family inet6 address")"; junos:must-message "referred interface must have address configured under family inet6"; type union { type jt:interface-unit; type string { pattern "<.*>|$.*"; } } description "Interface from which to take local address"; } leaf preferred-source-address { type string; description "Preferred address on the donor interface"; } } // container unnumbered-address choice dad-disable-choice { leaf dad-disable { type empty; description "Disable duplicate-address-detection"; } leaf no-dad-disable { type empty; description "Don't disable duplicate-address-detection"; } } // choice dad-disable-choice leaf destination-udp-port { junos:must "(".. .. .. tunnel encapsulation udp")"; junos:must-message "destination-udp-port can be configured only for encapsulation udp on fti interface"; type union { type string { pattern "<.*>|$.*"; } type uint32 { range "10010 .. 10019"; } } description "Choose destination UDP port number"; } } // container inet6 container mpls { junos:must "(!(".. .. encapsulation frame-relay-ppp"))"; junos:must-message "family mpls is not supported on encapsulation frame-relay-ppp"; presence "enable mpls"; description "MPLS protocol parameters"; uses apply-advanced; leaf mtu { type union { type uint32; type string { pattern "<.*>|$.*"; } } description "Protocol family maximum transmission unit"; } leaf maximum-labels { type union { type string { pattern "<.*>|$.*"; } type uint32; } description "Protocol family maximum number of labels"; } container filter { description "Packet filtering"; uses apply-advanced; choice input_choice { leaf input { type string; description "Name of filter applied to received packets"; } leaf-list input-list { type string; ordered-by user; description "List of filter modules applied to received packets "; } } // choice input_choice leaf-list input-chain { type string; ordered-by user; description "List of filter modules applied to received packets "; } choice output_choice { leaf output { type string; description "Name of filter applied to transmitted packets"; } leaf-list output-list { type string; ordered-by user; description "List of filter modules applied to transmitted packets "; } } // choice output_choice leaf-list output-chain { type string; ordered-by user; description "List of filter modules applied to transmitted packets "; } leaf group { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 255"; } } description "Interface group to which interface belongs"; } } // container filter container ingress-queuing-filter { description "Protocol family ingress-queuing-filter"; leaf filter-name { type string; description "Name of the ingress-queuing-filter"; } } // container ingress-queuing-filter container policer { description "Interface policing"; uses apply-advanced; leaf input { type string; description "Name of policer applied to received packets"; } leaf output { type string; description "Name of policer applied to transmitted packets"; } } // container policer leaf destination-udp-port { junos:must "(".. .. .. tunnel encapsulation udp")"; junos:must-message "destination-udp-port can be configured only for encapsulation udp on fti interface"; type union { type string { pattern "<.*>|$.*"; } type uint32 { range "10020 .. 10029"; } } description "Choose destination UDP port number"; } } // container mpls container mlppp { junos:must "(!("interfaces ${interface} container-options"))"; junos:must-message "mlppp is not supported for container interfaces"; description "Multilink PPP protocol parameters"; uses apply-advanced; leaf bundle { junos:must "((!(".. .. .. dial-options") || "interfaces $$-IFL encapsulation multilink-ppp"))"; junos:must-message "Bundle interface must be configured"; junos:must "((!(".. .. .. pppoe-options") || "interfaces $$-IFL encapsulation multilink-ppp"))"; junos:must-message "Bundle interface must be configured"; type string; description "Logical interface name this link will join"; } choice anchor-points { case case_1 { } // case case_1 case case_2 { } // case case_2 } // choice anchor-points leaf dynamic-profile { junos:must "("dynamic-profiles $$")"; junos:must-message "referenced dynamic-profile must be defined"; type string { length "1 .. 80"; } description " dynamic profile for interface to use"; } } // container mlppp container mlfr-end-to-end { junos:must "(!(".. .. encapsulation frame-relay-ppp"))"; junos:must-message "family mlfr-end-to-end is not supported on encapsulation frame-relay-ppp"; presence "enable mlfr-end-to-end"; description "Multilink Frame Relay end-to-end protocol parameters"; uses apply-advanced; leaf bundle { type union { type jt:interface-unit; type string { pattern "<.*>|$.*"; } } description "Logical interface name this link will join"; } } // container mlfr-end-to-end container mlfr-uni-nni { junos:must "(!(".. .. encapsulation frame-relay-ppp"))"; junos:must-message "family mlfr-uni-uni is not supported on encapsulation frame-relay-ppp"; presence "enable mlfr-uni-nni"; description "Multilink Frame Relay UNI NNI protocol parameters"; uses apply-advanced; leaf bundle { type union { type jt:interface-unit; type string { pattern "<.*>|$.*"; } } description "Logical interface name this link will join"; } } // container mlfr-uni-nni container ccc { junos:must "(!(".. .. encapsulation frame-relay-ppp"))"; junos:must-message "family ccc is not supported on encapsulation frame-relay-ppp"; presence "enable ccc"; description "Circuit cross-connect parameters"; uses apply-advanced; container filter { description "Packet filtering"; uses apply-advanced; choice input_choice { leaf input { type string; description "Name of filter applied to received packets"; } leaf-list input-list { type string; ordered-by user; description "List of filter modules applied to received packets "; } } // choice input_choice leaf-list input-chain { type string; ordered-by user; description "List of filter modules applied to received packets "; } choice output_choice { leaf output { type string; description "Name of filter applied to transmitted packets"; } leaf-list output-list { type string; ordered-by user; description "List of filter modules applied to transmitted packets "; } } // choice output_choice leaf-list output-chain { type string; ordered-by user; description "List of filter modules applied to transmitted packets "; } leaf group { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 255"; } } description "Interface group to which interface belongs"; } } // container filter container policer { description "Interface policing"; uses apply-advanced; leaf input { type string; description "Name of policer applied to received packets"; } leaf output { type string; description "Name of policer applied to transmitted packets"; } } // container policer leaf translate-fecn-and-becn { type empty; description "Translate FECN and BECN bits"; } choice de-or-plp { leaf translate-discard-eligible { type empty; description "Translate DE bit"; } case case_2 { } // case case_2 } // choice de-or-plp leaf keep-address-and-control { type empty; description "Don't strip PPP address and control bytes"; } } // container ccc container tcc { junos:must "(!(".. .. encapsulation frame-relay-ppp"))"; junos:must-message "family tcc is not supported on encapsulation frame-relay-ppp"; presence "enable tcc"; description "Translational cross-connect parameters"; uses apply-advanced; container policer { description "Interface policing"; uses apply-advanced; leaf input { type string; description "Name of policer applied to received packets"; } leaf output { type string; description "Name of policer applied to transmitted packets"; } } // container policer container proxy { presence "enable proxy"; uses apply-advanced; leaf inet-address { type jt:ipv4addr; description "Remote host address on non-Ethernet side of Ethernet TCC"; } } // container proxy container remote { presence "enable remote"; uses apply-advanced; leaf inet-address { type jt:ipv4addr; description "Remote host address on Ethernet side of Ethernet TCC"; } leaf mac-address { type jt:mac-addr; description "Remote host MAC address on Ethernet side of Ethernet TCC"; } } // container remote leaf-list protocols { type enumeration { enum "mpls" { value 0; description "Multiprotocol Label Switching"; } enum "inet" { value 1; description "IP version 4"; } enum "iso" { value 2; description "International Organization for Standardization"; } enum "inet6" { value 3; description "IP version 6"; } } ordered-by user; description "Protocols supported on TCC interface"; } } // container tcc container vpls { presence "enable vpls"; description "Virtual private LAN service parameters"; uses apply-advanced; leaf core-facing { type empty; description "Interface is core facing"; } container filter { description "Packet filtering"; uses apply-advanced; choice input_choice { container input { description "Filter to be applied to received packets"; leaf filter-name { type string; description "Name of the filter"; } leaf shared-name { type string; description "Filter shared-name of instances of interface-shared filter"; } leaf precedence { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Precedence of the filter"; } } // container input leaf-list input-list { type string; ordered-by user; description "List of filter modules applied to received packets "; } } // choice input_choice choice output_choice { container output { description "Filter to be applied to transmitted packets"; leaf filter-name { type string; description "Name of the filter"; } leaf shared-name { type string; description "Filter shared-name of instances of interface-shared filter"; } leaf precedence { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Precedence of the filter"; } } // container output leaf-list output-list { type string; ordered-by user; description "List of filter modules applied to transmitted packets "; } } // choice output_choice container adf { description "Ascend Data Filter definition"; uses apply-advanced; list rule { key "name"; ordered-by user; description "Set of ADF rules"; leaf name { type string; description "Value for a single rule"; } uses apply-advanced; } // list rule leaf counter { type empty; description "Add a counter to each rule"; } leaf input-precedence { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Precedence of the input rules"; } leaf not-mandatory { type empty; description "No errors will be reported if no rules are present"; } leaf output-precedence { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Precedence of the output rules"; } } // container adf leaf group { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 255"; } } description "Group to which interface belongs"; } } // container filter container policer { description "Interface policing"; uses apply-advanced; leaf input { type string; description "Name of policer applied to received packets"; } leaf output { type string; description "Name of policer applied to transmitted packets"; } } // container policer } // container vpls container bridge { junos:must "((!(".. vpls") && (!(".. inet") && (!(".. inet6") && (!(".. ccc") && (!(".. ethernet-switching") && (!(".. iso") && (!(".. llc2") && (!(".. mpls") && (!(".. tcc") && (!(".. pppoe") && !(".. gre"))))))))))))"; junos:must-message "family bridge and rest of the families are mutually exclusive"; presence "enable bridge"; description "Layer-2 bridging parameters"; uses apply-advanced; leaf core-facing { type empty; description "Interface is core facing"; } container filter { description "Packet filtering"; uses apply-advanced; choice input_choice { container input { description "Filter to be applied to received packets"; leaf filter-name { type string; description "Name of the filter"; } leaf shared-name { type string; description "Filter shared-name of instances of interface-shared filter"; } leaf precedence { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Precedence of the filter"; } } // container input leaf-list input-list { type string; ordered-by user; description "List of filter modules applied to received packets "; } } // choice input_choice choice output_choice { container output { description "Filter to be applied to transmitted packets"; leaf filter-name { type string; description "Name of the filter"; } leaf shared-name { type string; description "Filter shared-name of instances of interface-shared filter"; } leaf precedence { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Precedence of the filter"; } } // container output leaf-list output-list { type string; ordered-by user; description "List of filter modules applied to transmitted packets "; } } // choice output_choice container adf { description "Ascend Data Filter definition"; uses apply-advanced; list rule { key "name"; ordered-by user; description "Set of ADF rules"; leaf name { type string; description "Value for a single rule"; } uses apply-advanced; } // list rule leaf counter { type empty; description "Add a counter to each rule"; } leaf input-precedence { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Precedence of the input rules"; } leaf not-mandatory { type empty; description "No errors will be reported if no rules are present"; } leaf output-precedence { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Precedence of the output rules"; } } // container adf leaf group { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 255"; } } description "Group to which interface belongs"; } } // container filter container policer { description "Interface policing"; uses apply-advanced; leaf input { type string; description "Name of policer applied to received packets"; } leaf output { type string; description "Name of policer applied to transmitted packets"; } } // container policer leaf interface-mode { type enumeration { enum "access" { junos:must "((!("interfaces ${interface} vlan-tagging") && (!("interfaces ${interface} flexible-vlan-tagging") && !("interfaces ${interface} stacked-vlan-tagging"))))"; junos:must-message "interface-mode access is allowed only for untagged interfaces"; value 0; description "Interface mode is access"; } enum "trunk" { junos:must "(!("interfaces ${interface} no-native-vlan-insert"))"; junos:must-message "'interface-mode trunk' must not be configured with 'no-native-vlan-insert'"; junos:must "((("protocols mvrp interface ${interface}" || any "routing-instances <*> protocols mvrp interface ${interface}") || (".. vlan-id-list" || (".. isid-list" || (".. inner-vlan-id-list" || (".. vlan members" || ("..inner-vlan members" || (".. vlan-id" || ".. vlan-auto-sense"))))))))"; junos:must-message "'interface-mode trunk' must be defined with either 'vlan-id-list','isid-list', 'inner-vlan-id-list' or the interface must be configured for 'protocols mvrp' or 'vlan-auto-sense'"; value 1; description "Interface mode is trunk"; } } description "Interface mode (access or trunk)"; } leaf vlan-auto-sense { junos:must "(".. interface-mode trunk")"; junos:must-message "vlan-auto-sense can be enabled only on trunk interfaces"; type empty; description "Enable VLAN auto sense on this interface"; } leaf bridge-domain-type { type enumeration { enum "svlan" { junos:must "(".. isid-list all-service-groups")"; junos:must-message "bridge-domain-type svlan is allowed only for isid tagged interfaces"; junos:must "(".. interface-mode trunk")"; junos:must-message "bridge-domain-type svlan is allowed only for trunk interfaces"; value 0; description "Bridge domain type svlan"; } enum "bvlan" { junos:must "(".. isid-list all")"; junos:must-message "bridge-domain-type bvlan is allowed only for isid tagged interfaces"; junos:must "(".. interface-mode trunk")"; junos:must-message "bridge-domain-type bvlan is allowed only for trunk interfaces"; value 1; description "Bridge domain type bvlan"; } } description "Bridge domain type (svlan or bvlan)"; } leaf inter-switch-link { junos:must "(".. interface-mode trunk")"; junos:must-message "'Inter switch link' is supported only under trunk interface mode"; type empty; description "PVLAN inter switch link"; } choice vlan_list { leaf vlan-id { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 4094"; } } description "Access mode and trunk mode VLAN membership"; } leaf-list vlan-id-list { junos:must "((!(".. .. .. vlan-id") && !(".. .. .. vlan-tags")))"; junos:must-message "'vlan-id-list' cannot be used on interface with vlan-id/vlan-tags"; junos:must "(!("interfaces ${interface} stacked-vlan-tagging"))"; junos:must-message "'vlan-id-list' is not supported on stacked-vlan-tagging mode"; junos:must "(".. interface-mode trunk")"; junos:must-message "'vlan-id-list' statement supported only under trunk interface mode"; type jt:vlan-range; description "Trunk mode VLAN membership for this interface"; } leaf-list inner-vlan-id-list { junos:must "((!(".. .. .. vlan-tags inner") && !(".. .. .. vlan-tags inner-range")))"; junos:must-message "'inner-vlan-id-list' cannot be used on interface with vlan-tags inner/inner-range"; junos:must "((".. .. .. vlan-id" || ".. .. .. vlan-tags"))"; junos:must-message "'inner-vlan-id-list' can be used only on interface with vlan-id/vlan-tags"; junos:must "("interfaces ${interface} flexible-vlan-tagging")"; junos:must-message "'inner-vlan-id-list' is supported only on flexible-vlan-tagging mode"; junos:must "(".. interface-mode trunk")"; junos:must-message "'inner-vlan-id-list' statement supported only under trunk interface mode"; type jt:vlan-range; description "Trunk mode VLAN membership for this interface based on inner VLAN tag"; } } // choice vlan_list container vlan-rewrite { junos:must "((".. inner-vlan-id-list" || ".. vlan-id-list"))"; junos:must-message "'vlan-rewrite' statement can be used only with 'vlan-id-list' or inner-vlan-id-list configured"; junos:must "(".. interface-mode trunk")"; junos:must-message "'vlan-rewrite' statement supported only under trunk interface mode"; description "Specify vlan translation"; uses apply-advanced; list translate { key "name"; ordered-by user; description "Translate incoming VLAN tag"; leaf name { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 4094"; } } description "Specify the incoming VLAN tag"; } leaf to-vlan-id { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 4094"; } } description "Specify the bridge-domain VLAN-ID"; } } // list translate } // container vlan-rewrite choice isid_list { leaf isid-list { type enumeration { enum "all-service-groups" { junos:must "(".. interface-mode trunk")"; junos:must-message "'all-service-groups' statement supported only under trunk interface mode"; value 0; description "Map all ISIDs specified under the service-groups"; } enum "all" { junos:must "(".. interface-mode trunk")"; junos:must-message "'all' statement supported only under trunk interface mode"; value 1; description "Map all ISIDs"; } } description "Specify the ISID list"; } } // choice isid_list container recovery-timeout { junos:must "(".. storm-control")"; junos:must-message "Recovery timeout should be configured only with storm-control"; description "Recovery timeout for this interface"; leaf time-in-seconds { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "10 .. 3600"; } } units "seconds"; } } // container recovery-timeout } // container bridge container ethernet-switching { junos:must "((!(".. vpls") && (!(".. inet") && (!(".. inet6") && (!(".. bridge") && (!(".. ccc") && (!(".. iso") && (!(".. llc2") && (!(".. mpls") && (!(".. tcc") && (!(".. pppoe") && !(".. gre"))))))))))))"; junos:must-message "Family ethernet-switching and rest of the families are mutually exclusive"; presence "enable ethernet-switching"; description "Ethernet switching parameters"; uses ethernet-switching-type; } // container ethernet-switching container fibre-channel { presence "enable fibre-channel"; description "Fibre channel switching parameters"; uses fibre-channel-type; } // container fibre-channel container any { presence "enable any"; description "Parameters for 'any' family"; uses apply-advanced; container filter { description "Layer 2 packet filtering"; uses apply-advanced; leaf input { junos:must "(("firewall family any filter $$" || (!("firewall") && ".. .. .. .. .. .. firewall family any filter $$")))"; junos:must-message "referenced filter must be defined under firewall family any"; type string { junos:posix-pattern "!^((__.*)|(.{65,}))$"; junos:pattern-message "Must be a non-reserved string of 64 characters or less"; } description "Name of filter applied to received packets"; } leaf group { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 255"; } } description "Group to which interface belongs"; } } // container filter } // container any uses apply-advanced; } // container family leaf service-domain { type enumeration { enum "inside" { value 0; description "Inside network"; } enum "outside" { value 1; description "Outside network"; } } description "Service domain to which interface belongs"; } leaf copy-tos-to-outer-ip-header { type empty; description "Copy IP payload header's ToS field to GRE delivery header"; } container load-balancing-options { junos:must "(!(".. .. load-balancing-options high-availability-options one-to-one"))"; junos:must-message "load-balancing-options are used when number of active members is more than one"; description "AMS subunit load balancing options"; uses apply-advanced; leaf preferred-active { junos:must "((".. .. .. load-balancing-options member-interface $$" && !(".. .. .. load-balancing-options high-availability-options many-to-one preferred-backup $$")))"; junos:must-message "Active should be one of member-interfaces excluding preferred-backup"; type union { type jt:interface-device; type string { pattern "<.*>|$.*"; } } description "Preferred active Interface name"; } leaf disable-hash { junos:must "(".. .. service-domain")"; junos:must-message "service-domain must be configured if disable-hash is enabled"; junos:must "(!(".. hash-keys"))"; junos:must-message "hash-keys must not be configured if disable-hash is enabled"; type empty; description "Hash based distribution is not needed for this subunit"; } container hash-keys { uses apply-advanced; leaf-list ingress-key { type enumeration { enum "source-ip" { value 0; description "Source Ip Address"; } enum "destination-ip" { value 1; description "Destination Ip Address"; } enum "protocol" { value 2; description "Protocol"; } enum "iif" { value 3; description "Incoming Interface"; } } ordered-by user; description "Hash Key for the ingress direction"; } leaf-list egress-key { type enumeration { enum "source-ip" { value 0; status deprecated; description "Source Ip Address"; } enum "destination-ip" { value 1; status deprecated; description "Destination Ip Address"; } enum "protocol" { value 2; status deprecated; description "Protocol"; } enum "oif" { value 3; status deprecated; description "Outgoing Interface"; } } ordered-by user; status deprecated; description "Hash Key for the egress direction"; } leaf ipv6-source-prefix-length { type enumeration { enum "56" { value 0; description "56 bit IPv6 address prefix"; } enum "64" { value 1; description "64 bit IPv6 address prefix"; } enum "96" { value 2; description "96 bit IPv6 address prefix"; } enum "128" { value 3; description "Complete 128 bit IPv6 address"; } } description "IPv6 source prefix length for hash computation"; } } // container hash-keys } // container load-balancing-options container interface-state { description "IRB interface state computation"; uses apply-advanced; choice state { leaf local-interface { type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "IRB State computation based on loopback AE port state"; } } // choice state container hold-time { description "Delay before marking interface up or down for defect"; uses apply-advanced; leaf up { type union { type uint32; type string { pattern "<.*>|$.*"; } } units "seconds"; description "Delay in seconds before marking IRB interface up"; } leaf down { type union { type uint32; type string { pattern "<.*>|$.*"; } } units "seconds"; description "Delay in seconds before marking IRB interface down"; } } // container hold-time } // container interface-state leaf mac { type jt:mac-unicast; description "Configure logical interface MAC address"; } leaf virtual-gateway-v4-mac { type jt:mac-unicast; description "Configure virtual gateway IPV4 virtual MAC address"; } leaf virtual-gateway-v6-mac { type jt:mac-unicast; description "Configure virtual gateway IPV6 virtual MAC address"; } leaf etree-ac-role { type enumeration { enum "root" { value 0; description "ETREE root interface"; } enum "leaf" { value 1; description "ETREE leaf interface"; } } description "ETREE attachment circuit role"; } } // list unit container no-partition { description "Use channelizable interface as clear channel"; leaf interface-type { type enumeration { enum "e1" { value 0; description "E1 interface"; } enum "t1" { value 1; description "T1 interface"; } enum "at" { value 2; description "ATM interface"; } enum "t3" { value 3; description "T3 interface"; } enum "e3" { value 4; description "E3 interface"; } enum "ct3" { value 5; description "Channelized T3 interface"; } enum "so" { value 6; description "SONET interface"; } enum "cau4" { value 7; description "CAU4 interface"; } } description "Interface type"; } } // container no-partition list partition { junos:must "(!(".. no-partition"))"; junos:must-message "cannot set partitions with no-partition attribute turned on"; key "name"; ordered-by user; description "Channelized interface partition"; leaf name { type string; description "Sublevel interface partition index (for example, 1, 3-4)"; } leaf oc-slice { type string; description "Range of SONET/SDH slices (for example, 1, 7-9)"; } leaf timeslots { type string; description "Timeslots [(1..24) for T1, (1..31) for E1]; for example, 1-3,4,9,22-24 (no spaces)"; } leaf interface-type { type enumeration { enum "ds" { value 0; description "DS0 interface"; } enum "e1" { value 1; description "E1 interface"; } enum "t1" { value 2; description "T1 interface"; } enum "at" { value 3; description "ATM interface"; } enum "ct1" { value 4; description "Channelized T1 interface"; } enum "ce1" { value 5; description "Channelized E1 interface"; } enum "t3" { value 6; description "T3 interface"; } enum "ct3" { value 7; description "Channelized T3 interface"; } enum "e3" { value 8; description "E3 interface"; } enum "so" { value 9; description "SONET interface"; } enum "coc1" { value 10; description "Channelized OC1 interface"; } enum "cau4" { value 11; description "Channelized AU4 interface"; } enum "dc" { junos:must "(any ".. .. partition <*> interface-type bc")"; junos:must-message "BC partition must be defined for PRI"; value 12; description "D channel interface"; } enum "bc" { junos:must "(any ".. .. partition <*> interface-type dc")"; junos:must-message "DC partition must be defined for PRI"; value 13; description "B channel interface"; } } description "Sublevel interface type"; } } // list partition } // grouping interfaces_type grouping keepalives_type { uses apply-advanced; leaf interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 32767"; } } units "seconds"; description "Keepalive period"; } leaf up-count { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 255"; } } description "Keepalive received to bring link up"; } leaf down-count { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 255"; } } description "Keepalive missed to bring link down"; } } // grouping keepalives_type grouping log-object { description "Configure auditable security logs"; uses apply-advanced; list exclude { key "name"; ordered-by user; status deprecated; description "List of security log criteria to exclude from the audit log"; leaf name { type string; description "Exclude criteria name"; } uses apply-advanced; leaf destination-address { type jt:ipaddr; description "Destination address"; } leaf destination-port { type union { type uint32; type string { pattern "<.*>|$.*"; } } description "Destination port"; } leaf event-id { type string; description "Event ID filter"; } leaf failure { type empty; description "Event was a failure"; } leaf interface-name { type string; description "Name of interface"; } leaf policy-name { type string; description "Policy name filter"; } leaf process { type string; description "Process that generated the event"; } leaf protocol { type string; description "Protocol filter"; } leaf source-address { type jt:ipaddr; description "Source address"; } leaf source-port { type union { type uint32; type string { pattern "<.*>|$.*"; } } description "Source port"; } leaf success { type empty; description "Event was successful"; } leaf username { type string; description "Username filter"; } } // list exclude leaf limit { type union { type uint32; type string { pattern "<.*>|$.*"; } } default "10000"; status deprecated; description "Limit number of security log entries to keep in memory"; } container cache { presence "enable cache"; description "Cache security log events in the audit log buffer"; uses apply-advanced; list exclude { junos:must "(!(".. .. exclude"))"; junos:must-message "'security log cache exclude' and 'security log exclude' are mutually exclusive"; key "name"; ordered-by user; description "List of security log criteria to exclude from the audit log"; leaf name { type string; description "Exclude criteria name"; } uses apply-advanced; leaf destination-address { type jt:ipaddr; description "Destination address"; } leaf destination-port { type union { type uint32; type string { pattern "<.*>|$.*"; } } description "Destination port"; } leaf event-id { type string; description "Event ID filter"; } leaf failure { type empty; description "Event was a failure"; } leaf interface-name { type string; description "Name of interface"; } leaf policy-name { type string; description "Policy name filter"; } leaf process { type string; description "Process that generated the event"; } leaf protocol { type string; description "Protocol filter"; } leaf source-address { type jt:ipaddr; description "Source address"; } leaf source-port { type union { type uint32; type string { pattern "<.*>|$.*"; } } description "Source port"; } leaf success { type empty; description "Event was successful"; } leaf username { type string; description "Username filter"; } } // list exclude leaf limit { junos:must "(!(".. .. limit"))"; junos:must-message "'security log cache limit' and 'security log limit' are mutually exclusive"; type union { type uint32; type string { pattern "<.*>|$.*"; } } default "10000"; description "Limit number of security log entries to keep in memory"; } } // container cache } // grouping log-object grouping mac_list { description "MAC address"; leaf name { type jt:mac-addr; } uses apply-advanced; container policer { description "MAC policing"; uses apply-advanced; leaf input { type string; description "Name of policer applied to received packets"; } leaf output { type string; description "Name of policer applied to transmitted packets"; } } // container policer } // grouping mac_list 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 mpls_ifd_options { uses apply-advanced; container pop-all-labels { presence "enable pop-all-labels"; description "Pop all MPLS labels off incoming packets"; uses apply-advanced; leaf-list required-depth { type enumeration { enum "all" { value 0; description "Takes effect only in Stoli based FPCs, in all other FPCs equivalent to '[1 2]'"; } enum "1" { value 1; description "Required label depth of packet to pop labels"; } enum "2" { value 2; description "Required label depth of packet to pop labels"; } } ordered-by user; description "Required label depth of packet to pop all labels"; } } // container pop-all-labels } // grouping mpls_ifd_options grouping och-attributes { description "Optical channel configuration attributes"; uses apply-advanced; leaf rate { type enumeration { enum "100g" { value 0; description "100Gbit OCH data rate"; } } description "Data rate of the OCH payload"; } leaf modulation { type enumeration { enum "qpsk" { value 0; description "QPSK Modulation Format"; } } description "Optical modulation format"; } leaf encoding { type enumeration { enum "differential" { value 0; description "Differential encoding"; } } description "Optical encoding"; } choice channel-number { leaf wavelength { type enumeration { enum "1568.77" { value 0; description "1568.77 nm/191.1003 THz 50/100Ghz spacing"; } enum "1568.36" { value 1; description "1568.36 nm/191.15000 THz 6.25/12.5/50GHz spacing"; } enum "1568.31" { value 2; description "1568.31 nm/191.15625 THz 6.25GHz spacing"; } enum "1568.26" { value 3; description "1568.26 nm/191.16250 THz 6.25/12.5GHz spacing"; } enum "1568.21" { value 4; description "1568.21 nm/191.16875 THz 6.25GHz spacing"; } enum "1568.16" { value 5; description "1568.16 nm/191.17500 THz 6.25/12.5GHz spacing"; } enum "1568.11" { value 6; description "1568.11 nm/191.18125 THz 6.25GHz spacing"; } enum "1568.05" { value 7; description "1568.05 nm/191.18750 THz 6.25/12.5GHz spacing"; } enum "1568.00" { value 8; description "1568.00 nm/191.19375 THz 6.25GHz spacing"; } enum "1567.95" { value 9; description "1567.95 nm/191.20000 THz 6.25/12.5/50/100GHz spacing"; } enum "1567.90" { value 10; description "1567.90 nm/191.20625 THz 6.25GHz spacing"; } enum "1567.85" { value 11; description "1567.85 nm/191.21250 THz 6.25/12.5GHz spacing"; } enum "1567.80" { value 12; description "1567.80 nm/191.21875 THz 6.25GHz spacing"; } enum "1567.75" { value 13; description "1567.75 nm/191.22500 THz 6.25/12.5GHz spacing"; } enum "1567.70" { value 14; description "1567.70 nm/191.23125 THz 6.25GHz spacing"; } enum "1567.64" { value 15; description "1567.64 nm/191.23750 THz 6.25/12.5GHz spacing"; } enum "1567.59" { value 16; description "1567.59 nm/191.24375 THz 6.25GHz spacing"; } enum "1567.54" { value 17; description "1567.54 nm/191.25000 THz 6.25/12.5/50GHz spacing"; } enum "1567.49" { value 18; description "1567.49 nm/191.25625 THz 6.25GHz spacing"; } enum "1567.44" { value 19; description "1567.44 nm/191.26250 THz 6.25/12.5GHz spacing"; } enum "1567.39" { value 20; description "1567.39 nm/191.26875 THz 6.25GHz spacing"; } enum "1567.34" { value 21; description "1567.34 nm/191.27500 THz 6.25/12.5GHz spacing"; } enum "1567.29" { value 22; description "1567.29 nm/191.28125 THz 6.25GHz spacing"; } enum "1567.23" { value 23; description "1567.23 nm/191.28750 THz 6.25/12.5GHz spacing"; } enum "1567.18" { value 24; description "1567.18 nm/191.29375 THz 6.25GHz spacing"; } enum "1567.13" { value 25; description "1567.13 nm/191.30000 THz 6.25/12.5/50/100GHz spacing"; } enum "1567.08" { value 26; description "1567.08 nm/191.30625 THz 6.25GHz spacing"; } enum "1567.03" { value 27; description "1567.03 nm/191.31250 THz 6.25/12.5GHz spacing"; } enum "1566.98" { value 28; description "1566.98 nm/191.31875 THz 6.25GHz spacing"; } enum "1566.93" { value 29; description "1566.93 nm/191.32500 THz 6.25/12.5GHz spacing"; } enum "1566.88" { value 30; description "1566.88 nm/191.33125 THz 6.25GHz spacing"; } enum "1566.83" { value 31; description "1566.83 nm/191.33750 THz 6.25/12.5GHz spacing"; } enum "1566.77" { value 32; description "1566.77 nm/191.34375 THz 6.25GHz spacing"; } enum "1566.72" { value 33; description "1566.72 nm/191.35000 THz 6.25/12.5/50GHz spacing"; } enum "1566.67" { value 34; description "1566.67 nm/191.35625 THz 6.25GHz spacing"; } enum "1566.62" { value 35; description "1566.62 nm/191.36250 THz 6.25/12.5GHz spacing"; } enum "1566.57" { value 36; description "1566.57 nm/191.36875 THz 6.25GHz spacing"; } enum "1566.52" { value 37; description "1566.52 nm/191.37500 THz 6.25/12.5/75GHz spacing"; } enum "1566.47" { value 38; description "1566.47 nm/191.38125 THz 6.25GHz spacing"; } enum "1566.42" { value 39; description "1566.42 nm/191.38750 THz 6.25/12.5GHz spacing"; } enum "1566.36" { value 40; description "1566.36 nm/191.39375 THz 6.25GHz spacing"; } enum "1566.31" { value 41; description "1566.31 nm/191.40000 THz 6.25/12.5/50/100GHz spacing"; } enum "1566.26" { value 42; description "1566.26 nm/191.40625 THz 6.25GHz spacing"; } enum "1566.21" { value 43; description "1566.21 nm/191.41250 THz 6.25/12.5GHz spacing"; } enum "1566.16" { value 44; description "1566.16 nm/191.41875 THz 6.25GHz spacing"; } enum "1566.11" { value 45; description "1566.11 nm/191.42500 THz 6.25/12.5GHz spacing"; } enum "1566.06" { value 46; description "1566.06 nm/191.43125 THz 6.25GHz spacing"; } enum "1566.01" { value 47; description "1566.01 nm/191.43750 THz 6.25/12.5GHz spacing"; } enum "1565.96" { value 48; description "1565.96 nm/191.44375 THz 6.25GHz spacing"; } enum "1565.90" { value 49; description "1565.90 nm/191.45000 THz 6.25/12.5/50/75GHz spacing"; } enum "1565.85" { value 50; description "1565.85 nm/191.45625 THz 6.25GHz spacing"; } enum "1565.80" { value 51; description "1565.80 nm/191.46250 THz 6.25/12.5GHz spacing"; } enum "1565.75" { value 52; description "1565.75 nm/191.46875 THz 6.25GHz spacing"; } enum "1565.70" { value 53; description "1565.70 nm/191.47500 THz 6.25/12.5GHz spacing"; } enum "1565.65" { value 54; description "1565.65 nm/191.48125 THz 6.25GHz spacing"; } enum "1565.60" { value 55; description "1565.60 nm/191.48750 THz 6.25/12.5GHz spacing"; } enum "1565.55" { value 56; description "1565.55 nm/191.49375 THz 6.25GHz spacing"; } enum "1565.50" { value 57; description "1565.50 nm/191.50000 THz 6.25/12.5/50/100GHz spacing"; } enum "1565.44" { value 58; description "1565.44 nm/191.50625 THz 6.25GHz spacing"; } enum "1565.39" { value 59; description "1565.39 nm/191.51250 THz 6.25/12.5GHz spacing"; } enum "1565.34" { value 60; description "1565.34 nm/191.51875 THz 6.25GHz spacing"; } enum "1565.29" { value 61; description "1565.29 nm/191.52500 THz 6.25/12.5/75GHz spacing"; } enum "1565.24" { value 62; description "1565.24 nm/191.53125 THz 6.25GHz spacing"; } enum "1565.19" { value 63; description "1565.19 nm/191.53750 THz 6.25/12.5GHz spacing"; } enum "1565.14" { value 64; description "1565.14 nm/191.54375 THz 6.25GHz spacing"; } enum "1565.09" { value 65; description "1565.09 nm/191.55000 THz 6.25/12.5/50GHz spacing"; } enum "1565.04" { value 66; description "1565.04 nm/191.55625 THz 6.25GHz spacing"; } enum "1564.99" { value 67; description "1564.99 nm/191.56250 THz 6.25/12.5GHz spacing"; } enum "1564.93" { value 68; description "1564.93 nm/191.56875 THz 6.25GHz spacing"; } enum "1564.88" { value 69; description "1564.88 nm/191.57500 THz 6.25/12.5GHz spacing"; } enum "1564.83" { value 70; description "1564.83 nm/191.58125 THz 6.25GHz spacing"; } enum "1564.78" { value 71; description "1564.78 nm/191.58750 THz 6.25/12.5GHz spacing"; } enum "1564.73" { value 72; description "1564.73 nm/191.59375 THz 6.25GHz spacing"; } enum "1564.68" { value 73; description "1564.68 nm/191.60000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1564.63" { value 74; description "1564.63 nm/191.60625 THz 6.25GHz spacing"; } enum "1564.58" { value 75; description "1564.58 nm/191.61250 THz 6.25/12.5GHz spacing"; } enum "1564.53" { value 76; description "1564.53 nm/191.61875 THz 6.25GHz spacing"; } enum "1564.47" { value 77; description "1564.47 nm/191.62500 THz 6.25/12.5GHz spacing"; } enum "1564.42" { value 78; description "1564.42 nm/191.63125 THz 6.25GHz spacing"; } enum "1564.37" { value 79; description "1564.37 nm/191.63750 THz 6.25/12.5GHz spacing"; } enum "1564.32" { value 80; description "1564.32 nm/191.64375 THz 6.25GHz spacing"; } enum "1564.27" { value 81; description "1564.27 nm/191.65000 THz 6.25/12.5/50GHz spacing"; } enum "1564.22" { value 82; description "1564.22 nm/191.65625 THz 6.25GHz spacing"; } enum "1564.17" { value 83; description "1564.17 nm/191.66250 THz 6.25/12.5GHz spacing"; } enum "1564.12" { value 84; description "1564.12 nm/191.66875 THz 6.25GHz spacing"; } enum "1564.07" { value 85; description "1564.07 nm/191.67500 THz 6.25/12.5/75GHz spacing"; } enum "1564.02" { value 86; description "1564.02 nm/191.68125 THz 6.25GHz spacing"; } enum "1563.96" { value 87; description "1563.96 nm/191.68750 THz 6.25/12.5GHz spacing"; } enum "1563.91" { value 88; description "1563.91 nm/191.69375 THz 6.25GHz spacing"; } enum "1563.86" { value 89; description "1563.86 nm/191.70000 THz 6.25/12.5/50/100GHz spacing"; } enum "1563.81" { value 90; description "1563.81 nm/191.70625 THz 6.25GHz spacing"; } enum "1563.76" { value 91; description "1563.76 nm/191.71250 THz 6.25/12.5GHz spacing"; } enum "1563.71" { value 92; description "1563.71 nm/191.71875 THz 6.25GHz spacing"; } enum "1563.66" { value 93; description "1563.66 nm/191.72500 THz 6.25/12.5GHz spacing"; } enum "1563.61" { value 94; description "1563.61 nm/191.73125 THz 6.25GHz spacing"; } enum "1563.56" { value 95; description "1563.56 nm/191.73750 THz 6.25/12.5GHz spacing"; } enum "1563.51" { value 96; description "1563.51 nm/191.74375 THz 6.25GHz spacing"; } enum "1563.45" { value 97; description "1563.45 nm/191.75000 THz 6.25/12.5/50/75GHz spacing"; } enum "1563.40" { value 98; description "1563.40 nm/191.75625 THz 6.25GHz spacing"; } enum "1563.35" { value 99; description "1563.35 nm/191.76250 THz 6.25/12.5GHz spacing"; } enum "1563.30" { value 100; description "1563.30 nm/191.76875 THz 6.25GHz spacing"; } enum "1563.25" { value 101; description "1563.25 nm/191.77500 THz 6.25/12.5GHz spacing"; } enum "1563.20" { value 102; description "1563.20 nm/191.78125 THz 6.25GHz spacing"; } enum "1563.15" { value 103; description "1563.15 nm/191.78750 THz 6.25/12.5GHz spacing"; } enum "1563.10" { value 104; description "1563.10 nm/191.79375 THz 6.25GHz spacing"; } enum "1563.05" { value 105; description "1563.05 nm/191.80000 THz 6.25/12.5/50/100GHz spacing"; } enum "1563.00" { value 106; description "1563.00 nm/191.80625 THz 6.25GHz spacing"; } enum "1562.95" { value 107; description "1562.95 nm/191.81250 THz 6.25/12.5GHz spacing"; } enum "1562.89" { value 108; description "1562.89 nm/191.81875 THz 6.25GHz spacing"; } enum "1562.84" { value 109; description "1562.84 nm/191.82500 THz 6.25/12.5/75GHz spacing"; } enum "1562.79" { value 110; description "1562.79 nm/191.83125 THz 6.25GHz spacing"; } enum "1562.74" { value 111; description "1562.74 nm/191.83750 THz 6.25/12.5GHz spacing"; } enum "1562.69" { value 112; description "1562.69 nm/191.84375 THz 6.25GHz spacing"; } enum "1562.64" { value 113; description "1562.64 nm/191.85000 THz 6.25/12.5/50GHz spacing"; } enum "1562.59" { value 114; description "1562.59 nm/191.85625 THz 6.25GHz spacing"; } enum "1562.54" { value 115; description "1562.54 nm/191.86250 THz 6.25/12.5GHz spacing"; } enum "1562.49" { value 116; description "1562.49 nm/191.86875 THz 6.25GHz spacing"; } enum "1562.44" { value 117; description "1562.44 nm/191.87500 THz 6.25/12.5GHz spacing"; } enum "1562.39" { value 118; description "1562.39 nm/191.88125 THz 6.25GHz spacing"; } enum "1562.33" { value 119; description "1562.33 nm/191.88750 THz 6.25/12.5GHz spacing"; } enum "1562.28" { value 120; description "1562.28 nm/191.89375 THz 6.25GHz spacing"; } enum "1562.23" { value 121; description "1562.23 nm/191.90000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1562.18" { value 122; description "1562.18 nm/191.90625 THz 6.25GHz spacing"; } enum "1562.13" { value 123; description "1562.13 nm/191.91250 THz 6.25/12.5GHz spacing"; } enum "1562.08" { value 124; description "1562.08 nm/191.91875 THz 6.25GHz spacing"; } enum "1562.03" { value 125; description "1562.03 nm/191.92500 THz 6.25/12.5GHz spacing"; } enum "1561.98" { value 126; description "1561.98 nm/191.93125 THz 6.25GHz spacing"; } enum "1561.93" { value 127; description "1561.93 nm/191.93750 THz 6.25/12.5GHz spacing"; } enum "1561.88" { value 128; description "1561.88 nm/191.94375 THz 6.25GHz spacing"; } enum "1561.83" { value 129; description "1561.83 nm/191.95000 THz 6.25/12.5/50GHz spacing"; } enum "1561.77" { value 130; description "1561.77 nm/191.95625 THz 6.25GHz spacing"; } enum "1561.72" { value 131; description "1561.72 nm/191.96250 THz 6.25/12.5GHz spacing"; } enum "1561.67" { value 132; description "1561.67 nm/191.96875 THz 6.25GHz spacing"; } enum "1561.62" { value 133; description "1561.62 nm/191.97500 THz 6.25/12.5/75GHz spacing"; } enum "1561.57" { value 134; description "1561.57 nm/191.98125 THz 6.25GHz spacing"; } enum "1561.52" { value 135; description "1561.52 nm/191.98750 THz 6.25/12.5GHz spacing"; } enum "1561.47" { value 136; description "1561.47 nm/191.99375 THz 6.25GHz spacing"; } enum "1561.42" { value 137; description "1561.42 nm/192.00000 THz 6.25/12.5/50/100GHz spacing"; } enum "1561.37" { value 138; description "1561.37 nm/192.00625 THz 6.25GHz spacing"; } enum "1561.32" { value 139; description "1561.32 nm/192.01250 THz 6.25/12.5GHz spacing"; } enum "1561.27" { value 140; description "1561.27 nm/192.01875 THz 6.25GHz spacing"; } enum "1561.22" { value 141; description "1561.22 nm/192.02500 THz 6.25/12.5GHz spacing"; } enum "1561.16" { value 142; description "1561.16 nm/192.03125 THz 6.25GHz spacing"; } enum "1561.11" { value 143; description "1561.11 nm/192.03750 THz 6.25/12.5GHz spacing"; } enum "1561.06" { value 144; description "1561.06 nm/192.04375 THz 6.25GHz spacing"; } enum "1561.01" { value 145; description "1561.01 nm/192.05000 THz 6.25/12.5/50G/75Hz spacing"; } enum "1560.96" { value 146; description "1560.96 nm/192.05625 THz 6.25GHz spacing"; } enum "1560.91" { value 147; description "1560.91 nm/192.06250 THz 6.25/12.5GHz spacing"; } enum "1560.86" { value 148; description "1560.86 nm/192.06875 THz 6.25GHz spacing"; } enum "1560.81" { value 149; description "1560.81 nm/192.07500 THz 6.25/12.5GHz spacing"; } enum "1560.76" { value 150; description "1560.76 nm/192.08125 THz 6.25GHz spacing"; } enum "1560.71" { value 151; description "1560.71 nm/192.08750 THz 6.25/12.5GHz spacing"; } enum "1560.66" { value 152; description "1560.66 nm/192.09375 THz 6.25GHz spacing"; } enum "1560.61" { value 153; description "1560.61 nm/192.10000 THz 6.25/12.5/50/100GHz spacing"; } enum "1560.56" { value 154; description "1560.56 nm/192.10625 THz 6.25GHz spacing"; } enum "1560.50" { value 155; description "1560.50 nm/192.11250 THz 6.25/12.5GHz spacing"; } enum "1560.45" { value 156; description "1560.45 nm/192.11875 THz 6.25GHz spacing"; } enum "1560.40" { value 157; description "1560.40 nm/192.12500 THz 6.25/12.5/75GHz spacing"; } enum "1560.35" { value 158; description "1560.35 nm/192.13125 THz 6.25GHz spacing"; } enum "1560.30" { value 159; description "1560.30 nm/192.13750 THz 6.25/12.5GHz spacing"; } enum "1560.25" { value 160; description "1560.25 nm/192.14375 THz 6.25GHz spacing"; } enum "1560.20" { value 161; description "1560.20 nm/192.15000 THz 6.25/12.5/50GHz spacing"; } enum "1560.15" { value 162; description "1560.15 nm/192.15625 THz 6.25GHz spacing"; } enum "1560.10" { value 163; description "1560.10 nm/192.16250 THz 6.25/12.5GHz spacing"; } enum "1560.05" { value 164; description "1560.05 nm/192.16875 THz 6.25GHz spacing"; } enum "1560.00" { value 165; description "1560.00 nm/192.17500 THz 6.25/12.5GHz spacing"; } enum "1559.95" { value 166; description "1559.95 nm/192.18125 THz 6.25GHz spacing"; } enum "1559.90" { value 167; description "1559.90 nm/192.18750 THz 6.25/12.5GHz spacing"; } enum "1559.84" { value 168; description "1559.84 nm/192.19375 THz 6.25GHz spacing"; } enum "1559.79" { value 169; description "1559.79 nm/192.20000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1559.74" { value 170; description "1559.74 nm/192.20625 THz 6.25GHz spacing"; } enum "1559.69" { value 171; description "1559.69 nm/192.21250 THz 6.25/12.5GHz spacing"; } enum "1559.64" { value 172; description "1559.64 nm/192.21875 THz 6.25GHz spacing"; } enum "1559.59" { value 173; description "1559.59 nm/192.22500 THz 6.25/12.5GHz spacing"; } enum "1559.54" { value 174; description "1559.54 nm/192.23125 THz 6.25GHz spacing"; } enum "1559.49" { value 175; description "1559.49 nm/192.23750 THz 6.25/12.5GHz spacing"; } enum "1559.44" { value 176; description "1559.44 nm/192.24375 THz 6.25GHz spacing"; } enum "1559.39" { value 177; description "1559.39 nm/192.25000 THz 6.25/12.5/50GHz spacing"; } enum "1559.34" { value 178; description "1559.34 nm/192.25625 THz 6.25GHz spacing"; } enum "1559.29" { value 179; description "1559.29 nm/192.26250 THz 6.25/12.5GHz spacing"; } enum "1559.24" { value 180; description "1559.24 nm/192.26875 THz 6.25GHz spacing"; } enum "1559.19" { value 181; description "1559.19 nm/192.27500 THz 6.25/12.5/75GHz spacing"; } enum "1559.14" { value 182; description "1559.14 nm/192.28125 THz 6.25GHz spacing"; } enum "1559.08" { value 183; description "1559.08 nm/192.28750 THz 6.25/12.5GHz spacing"; } enum "1559.03" { value 184; description "1559.03 nm/192.29375 THz 6.25GHz spacing"; } enum "1558.98" { value 185; description "1558.98 nm/192.30000 THz 6.25/12.5/50/100GHz spacing"; } enum "1558.93" { value 186; description "1558.93 nm/192.30625 THz 6.25GHz spacing"; } enum "1558.88" { value 187; description "1558.88 nm/192.31250 THz 6.25/12.5GHz spacing"; } enum "1558.83" { value 188; description "1558.83 nm/192.31875 THz 6.25GHz spacing"; } enum "1558.78" { value 189; description "1558.78 nm/192.32500 THz 6.25/12.5GHz spacing"; } enum "1558.73" { value 190; description "1558.73 nm/192.33125 THz 6.25GHz spacing"; } enum "1558.68" { value 191; description "1558.68 nm/192.33750 THz 6.25/12.5GHz spacing"; } enum "1558.63" { value 192; description "1558.63 nm/192.34375 THz 6.25GHz spacing"; } enum "1558.58" { value 193; description "1558.58 nm/192.35000 THz 6.25/12.5/50/75GHz spacing"; } enum "1558.53" { value 194; description "1558.53 nm/192.35625 THz 6.25GHz spacing"; } enum "1558.48" { value 195; description "1558.48 nm/192.36250 THz 6.25/12.5GHz spacing"; } enum "1558.43" { value 196; description "1558.43 nm/192.36875 THz 6.25GHz spacing"; } enum "1558.38" { value 197; description "1558.38 nm/192.37500 THz 6.25/12.5GHz spacing"; } enum "1558.32" { value 198; description "1558.32 nm/192.38125 THz 6.25GHz spacing"; } enum "1558.27" { value 199; description "1558.27 nm/192.38750 THz 6.25/12.5GHz spacing"; } enum "1558.22" { value 200; description "1558.22 nm/192.39375 THz 6.25GHz spacing"; } enum "1558.17" { value 201; description "1558.17 nm/192.40000 THz 6.25/12.5/50/100GHz spacing"; } enum "1558.12" { value 202; description "1558.12 nm/192.40625 THz 6.25GHz spacing"; } enum "1558.07" { value 203; description "1558.07 nm/192.41250 THz 6.25/12.5GHz spacing"; } enum "1558.02" { value 204; description "1558.02 nm/192.41875 THz 6.25GHz spacing"; } enum "1557.97" { value 205; description "1557.97 nm/192.42500 THz 6.25/12.5/75GHz spacing"; } enum "1557.92" { value 206; description "1557.92 nm/192.43125 THz 6.25GHz spacing"; } enum "1557.87" { value 207; description "1557.87 nm/192.43750 THz 6.25/12.5GHz spacing"; } enum "1557.82" { value 208; description "1557.82 nm/192.44375 THz 6.25GHz spacing"; } enum "1557.77" { value 209; description "1557.77 nm/192.45000 THz 6.25/12.5/50GHz spacing"; } enum "1557.72" { value 210; description "1557.72 nm/192.45625 THz 6.25GHz spacing"; } enum "1557.67" { value 211; description "1557.67 nm/192.46250 THz 6.25/12.5GHz spacing"; } enum "1557.62" { value 212; description "1557.62 nm/192.46875 THz 6.25GHz spacing"; } enum "1557.57" { value 213; description "1557.57 nm/192.47500 THz 6.25/12.5GHz spacing"; } enum "1557.52" { value 214; description "1557.52 nm/192.48125 THz 6.25GHz spacing"; } enum "1557.46" { value 215; description "1557.46 nm/192.48750 THz 6.25/12.5GHz spacing"; } enum "1557.41" { value 216; description "1557.41 nm/192.49375 THz 6.25GHz spacing"; } enum "1557.36" { value 217; description "1557.36 nm/192.50000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1557.31" { value 218; description "1557.31 nm/192.50625 THz 6.25GHz spacing"; } enum "1557.26" { value 219; description "1557.26 nm/192.51250 THz 6.25/12.5GHz spacing"; } enum "1557.21" { value 220; description "1557.21 nm/192.51875 THz 6.25GHz spacing"; } enum "1557.16" { value 221; description "1557.16 nm/192.52500 THz 6.25/12.5GHz spacing"; } enum "1557.11" { value 222; description "1557.11 nm/192.53125 THz 6.25GHz spacing"; } enum "1557.06" { value 223; description "1557.06 nm/192.53750 THz 6.25/12.5GHz spacing"; } enum "1557.01" { value 224; description "1557.01 nm/192.54375 THz 6.25GHz spacing"; } enum "1556.96" { value 225; description "1556.96 nm/192.55000 THz 6.25/12.5/50GHz spacing"; } enum "1556.91" { value 226; description "1556.91 nm/192.55625 THz 6.25GHz spacing"; } enum "1556.86" { value 227; description "1556.86 nm/192.56250 THz 6.25/12.5GHz spacing"; } enum "1556.81" { value 228; description "1556.81 nm/192.56875 THz 6.25GHz spacing"; } enum "1556.76" { value 229; description "1556.76 nm/192.57500 THz 6.25/12.5/75GHz spacing"; } enum "1556.71" { value 230; description "1556.71 nm/192.58125 THz 6.25GHz spacing"; } enum "1556.66" { value 231; description "1556.66 nm/192.58750 THz 6.25/12.5GHz spacing"; } enum "1556.61" { value 232; description "1556.61 nm/192.59375 THz 6.25GHz spacing"; } enum "1556.55" { value 233; description "1556.55 nm/192.60000 THz 6.25/12.5/50/100GHz spacing"; } enum "1556.50" { value 234; description "1556.50 nm/192.60625 THz 6.25GHz spacing"; } enum "1556.45" { value 235; description "1556.45 nm/192.61250 THz 6.25/12.5GHz spacing"; } enum "1556.40" { value 236; description "1556.40 nm/192.61875 THz 6.25GHz spacing"; } enum "1556.35" { value 237; description "1556.35 nm/192.62500 THz 6.25/12.5GHz spacing"; } enum "1556.30" { value 238; description "1556.30 nm/192.63125 THz 6.25GHz spacing"; } enum "1556.25" { value 239; description "1556.25 nm/192.63750 THz 6.25/12.5GHz spacing"; } enum "1556.20" { value 240; description "1556.20 nm/192.64375 THz 6.25GHz spacing"; } enum "1556.15" { value 241; description "1556.15 nm/192.65000 THz 6.25/12.5/50/75GHz spacing"; } enum "1556.10" { value 242; description "1556.10 nm/192.65625 THz 6.25GHz spacing"; } enum "1556.05" { value 243; description "1556.05 nm/192.66250 THz 6.25/12.5GHz spacing"; } enum "1556.00" { value 244; description "1556.00 nm/192.66875 THz 6.25GHz spacing"; } enum "1555.95" { value 245; description "1555.95 nm/192.67500 THz 6.25/12.5GHz spacing"; } enum "1555.90" { value 246; description "1555.90 nm/192.68125 THz 6.25GHz spacing"; } enum "1555.85" { value 247; description "1555.85 nm/192.68750 THz 6.25/12.5GHz spacing"; } enum "1555.80" { value 248; description "1555.80 nm/192.69375 THz 6.25GHz spacing"; } enum "1555.75" { value 249; description "1555.75 nm/192.70000 THz 6.25/12.5/50/100GHz spacing"; } enum "1555.70" { value 250; description "1555.70 nm/192.70625 THz 6.25GHz spacing"; } enum "1555.65" { value 251; description "1555.65 nm/192.71250 THz 6.25/12.5GHz spacing"; } enum "1555.60" { value 252; description "1555.60 nm/192.71875 THz 6.25GHz spacing"; } enum "1555.55" { value 253; description "1555.55 nm/192.72500 THz 6.25/12.5/75GHz spacing"; } enum "1555.49" { value 254; description "1555.49 nm/192.73125 THz 6.25GHz spacing"; } enum "1555.44" { value 255; description "1555.44 nm/192.73750 THz 6.25/12.5GHz spacing"; } enum "1555.39" { value 256; description "1555.39 nm/192.74375 THz 6.25GHz spacing"; } enum "1555.34" { value 257; description "1555.34 nm/192.75000 THz 6.25/12.5/50GHz spacing"; } enum "1555.29" { value 258; description "1555.29 nm/192.75625 THz 6.25GHz spacing"; } enum "1555.24" { value 259; description "1555.24 nm/192.76250 THz 6.25/12.5GHz spacing"; } enum "1555.19" { value 260; description "1555.19 nm/192.76875 THz 6.25GHz spacing"; } enum "1555.14" { value 261; description "1555.14 nm/192.77500 THz 6.25/12.5GHz spacing"; } enum "1555.09" { value 262; description "1555.09 nm/192.78125 THz 6.25GHz spacing"; } enum "1555.04" { value 263; description "1555.04 nm/192.78750 THz 6.25/12.5GHz spacing"; } enum "1554.99" { value 264; description "1554.99 nm/192.79375 THz 6.25GHz spacing"; } enum "1554.94" { value 265; description "1554.94 nm/192.80000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1554.89" { value 266; description "1554.89 nm/192.80625 THz 6.25GHz spacing"; } enum "1554.84" { value 267; description "1554.84 nm/192.81250 THz 6.25/12.5GHz spacing"; } enum "1554.79" { value 268; description "1554.79 nm/192.81875 THz 6.25GHz spacing"; } enum "1554.74" { value 269; description "1554.74 nm/192.82500 THz 6.25/12.5GHz spacing"; } enum "1554.69" { value 270; description "1554.69 nm/192.83125 THz 6.25GHz spacing"; } enum "1554.64" { value 271; description "1554.64 nm/192.83750 THz 6.25/12.5GHz spacing"; } enum "1554.59" { value 272; description "1554.59 nm/192.84375 THz 6.25GHz spacing"; } enum "1554.54" { value 273; description "1554.54 nm/192.85000 THz 6.25/12.5/50GHz spacing"; } enum "1554.49" { value 274; description "1554.49 nm/192.85625 THz 6.25GHz spacing"; } enum "1554.44" { value 275; description "1554.44 nm/192.86250 THz 6.25/12.5GHz spacing"; } enum "1554.39" { value 276; description "1554.39 nm/192.86875 THz 6.25GHz spacing"; } enum "1554.34" { value 277; description "1554.34 nm/192.87500 THz 6.25/12.5/75GHz spacing"; } enum "1554.29" { value 278; description "1554.29 nm/192.88125 THz 6.25GHz spacing"; } enum "1554.23" { value 279; description "1554.23 nm/192.88750 THz 6.25/12.5GHz spacing"; } enum "1554.18" { value 280; description "1554.18 nm/192.89375 THz 6.25GHz spacing"; } enum "1554.13" { value 281; description "1554.13 nm/192.90000 THz 6.25/12.5/50/100GHz spacing"; } enum "1554.08" { value 282; description "1554.08 nm/192.90625 THz 6.25GHz spacing"; } enum "1554.03" { value 283; description "1554.03 nm/192.91250 THz 6.25/12.5GHz spacing"; } enum "1553.98" { value 284; description "1553.98 nm/192.91875 THz 6.25GHz spacing"; } enum "1553.93" { value 285; description "1553.93 nm/192.92500 THz 6.25/12.5GHz spacing"; } enum "1553.88" { value 286; description "1553.88 nm/192.93125 THz 6.25GHz spacing"; } enum "1553.83" { value 287; description "1553.83 nm/192.93750 THz 6.25/12.5GHz spacing"; } enum "1553.78" { value 288; description "1553.78 nm/192.94375 THz 6.25GHz spacing"; } enum "1553.73" { value 289; description "1553.73 nm/192.95000 THz 6.25/12.5/50/75GHz spacing"; } enum "1553.68" { value 290; description "1553.68 nm/192.95625 THz 6.25GHz spacing"; } enum "1553.63" { value 291; description "1553.63 nm/192.96250 THz 6.25/12.5GHz spacing"; } enum "1553.58" { value 292; description "1553.58 nm/192.96875 THz 6.25GHz spacing"; } enum "1553.53" { value 293; description "1553.53 nm/192.97500 THz 6.25/12.5GHz spacing"; } enum "1553.48" { value 294; description "1553.48 nm/192.98125 THz 6.25GHz spacing"; } enum "1553.43" { value 295; description "1553.43 nm/192.98750 THz 6.25/12.5GHz spacing"; } enum "1553.38" { value 296; description "1553.38 nm/192.99375 THz 6.25GHz spacing"; } enum "1553.33" { value 297; description "1553.33 nm/193.00000 THz 6.25/12.5/50/100GHz spacing"; } enum "1553.28" { value 298; description "1553.28 nm/193.00625 THz 6.25GHz spacing"; } enum "1553.23" { value 299; description "1553.23 nm/193.01250 THz 6.25/12.5GHz spacing"; } enum "1553.18" { value 300; description "1553.18 nm/193.01875 THz 6.25GHz spacing"; } enum "1553.13" { value 301; description "1553.13 nm/193.02500 THz 6.25/12.5/75GHz spacing"; } enum "1553.08" { value 302; description "1553.08 nm/193.03125 THz 6.25GHz spacing"; } enum "1553.03" { value 303; description "1553.03 nm/193.03750 THz 6.25/12.5GHz spacing"; } enum "1552.98" { value 304; description "1552.98 nm/193.04375 THz 6.25GHz spacing"; } enum "1552.93" { value 305; description "1552.93 nm/193.05000 THz 6.25/12.5/50GHz spacing"; } enum "1552.88" { value 306; description "1552.88 nm/193.05625 THz 6.25GHz spacing"; } enum "1552.83" { value 307; description "1552.83 nm/193.06250 THz 6.25/12.5GHz spacing"; } enum "1552.78" { value 308; description "1552.78 nm/193.06875 THz 6.25GHz spacing"; } enum "1552.73" { value 309; description "1552.73 nm/193.07500 THz 6.25/12.5GHz spacing"; } enum "1552.68" { value 310; description "1552.68 nm/193.08125 THz 6.25GHz spacing"; } enum "1552.62" { value 311; description "1552.62 nm/193.08750 THz 6.25/12.5GHz spacing"; } enum "1552.57" { value 312; description "1552.57 nm/193.09375 THz 6.25GHz spacing"; } enum "1552.52" { value 313; description "1552.52 nm/193.10000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1552.47" { value 314; description "1552.47 nm/193.10625 THz 6.25GHz spacing"; } enum "1552.42" { value 315; description "1552.42 nm/193.11250 THz 6.25/12.5GHz spacing"; } enum "1552.37" { value 316; description "1552.37 nm/193.11875 THz 6.25GHz spacing"; } enum "1552.32" { value 317; description "1552.32 nm/193.12500 THz 6.25/12.5GHz spacing"; } enum "1552.27" { value 318; description "1552.27 nm/193.13125 THz 6.25GHz spacing"; } enum "1552.22" { value 319; description "1552.22 nm/193.13750 THz 6.25/12.5GHz spacing"; } enum "1552.17" { value 320; description "1552.17 nm/193.14375 THz 6.25GHz spacing"; } enum "1552.12" { value 321; description "1552.12 nm/193.15000 THz 6.25/12.5/50GHz spacing"; } enum "1552.07" { value 322; description "1552.07 nm/193.15625 THz 6.25GHz spacing"; } enum "1552.02" { value 323; description "1552.02 nm/193.16250 THz 6.25/12.5GHz spacing"; } enum "1551.97" { value 324; description "1551.97 nm/193.16875 THz 6.25GHz spacing"; } enum "1551.92" { value 325; description "1551.92 nm/193.17500 THz 6.25/12.5/75GHz spacing"; } enum "1551.87" { value 326; description "1551.87 nm/193.18125 THz 6.25GHz spacing"; } enum "1551.82" { value 327; description "1551.82 nm/193.18750 THz 6.25/12.5GHz spacing"; } enum "1551.77" { value 328; description "1551.77 nm/193.19375 THz 6.25GHz spacing"; } enum "1551.72" { value 329; description "1551.72 nm/193.20000 THz 6.25/12.5/50/100GHz spacing"; } enum "1551.67" { value 330; description "1551.67 nm/193.20625 THz 6.25GHz spacing"; } enum "1551.62" { value 331; description "1551.62 nm/193.21250 THz 6.25/12.5GHz spacing"; } enum "1551.57" { value 332; description "1551.57 nm/193.21875 THz 6.25GHz spacing"; } enum "1551.52" { value 333; description "1551.52 nm/193.22500 THz 6.25/12.5GHz spacing"; } enum "1551.47" { value 334; description "1551.47 nm/193.23125 THz 6.25GHz spacing"; } enum "1551.42" { value 335; description "1551.42 nm/193.23750 THz 6.25/12.5GHz spacing"; } enum "1551.37" { value 336; description "1551.37 nm/193.24375 THz 6.25GHz spacing"; } enum "1551.32" { value 337; description "1551.32 nm/193.25000 THz 6.25/12.5/50/75GHz spacing"; } enum "1551.27" { value 338; description "1551.27 nm/193.25625 THz 6.25GHz spacing"; } enum "1551.22" { value 339; description "1551.22 nm/193.26250 THz 6.25/12.5GHz spacing"; } enum "1551.17" { value 340; description "1551.17 nm/193.26875 THz 6.25GHz spacing"; } enum "1551.12" { value 341; description "1551.12 nm/193.27500 THz 6.25/12.5GHz spacing"; } enum "1551.07" { value 342; description "1551.07 nm/193.28125 THz 6.25GHz spacing"; } enum "1551.02" { value 343; description "1551.02 nm/193.28750 THz 6.25/12.5GHz spacing"; } enum "1550.97" { value 344; description "1550.97 nm/193.29375 THz 6.25GHz spacing"; } enum "1550.92" { value 345; description "1550.92 nm/193.30000 THz 6.25/12.5/50/100GHz spacing"; } enum "1550.87" { value 346; description "1550.87 nm/193.30625 THz 6.25GHz spacing"; } enum "1550.82" { value 347; description "1550.82 nm/193.31250 THz 6.25/12.5GHz spacing"; } enum "1550.77" { value 348; description "1550.77 nm/193.31875 THz 6.25GHz spacing"; } enum "1550.72" { value 349; description "1550.72 nm/193.32500 THz 6.25/12.5/75GHz spacing"; } enum "1550.67" { value 350; description "1550.67 nm/193.33125 THz 6.25GHz spacing"; } enum "1550.62" { value 351; description "1550.62 nm/193.33750 THz 6.25/12.5GHz spacing"; } enum "1550.57" { value 352; description "1550.57 nm/193.34375 THz 6.25GHz spacing"; } enum "1550.52" { value 353; description "1550.52 nm/193.35000 THz 6.25/12.5/50GHz spacing"; } enum "1550.47" { value 354; description "1550.47 nm/193.35625 THz 6.25GHz spacing"; } enum "1550.42" { value 355; description "1550.42 nm/193.36250 THz 6.25/12.5GHz spacing"; } enum "1550.37" { value 356; description "1550.37 nm/193.36875 THz 6.25GHz spacing"; } enum "1550.32" { value 357; description "1550.32 nm/193.37500 THz 6.25/12.5GHz spacing"; } enum "1550.27" { value 358; description "1550.27 nm/193.38125 THz 6.25GHz spacing"; } enum "1550.22" { value 359; description "1550.22 nm/193.38750 THz 6.25/12.5GHz spacing"; } enum "1550.17" { value 360; description "1550.17 nm/193.39375 THz 6.25GHz spacing"; } enum "1550.12" { value 361; description "1550.12 nm/193.40000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1550.07" { value 362; description "1550.07 nm/193.40625 THz 6.25GHz spacing"; } enum "1550.02" { value 363; description "1550.02 nm/193.41250 THz 6.25/12.5GHz spacing"; } enum "1549.97" { value 364; description "1549.97 nm/193.41875 THz 6.25GHz spacing"; } enum "1549.92" { value 365; description "1549.92 nm/193.42500 THz 6.25/12.5GHz spacing"; } enum "1549.87" { value 366; description "1549.87 nm/193.43125 THz 6.25GHz spacing"; } enum "1549.82" { value 367; description "1549.82 nm/193.43750 THz 6.25/12.5GHz spacing"; } enum "1549.77" { value 368; description "1549.77 nm/193.44375 THz 6.25GHz spacing"; } enum "1549.72" { value 369; description "1549.72 nm/193.45000 THz 6.25/12.5/50GHz spacing"; } enum "1549.67" { value 370; description "1549.67 nm/193.45625 THz 6.25GHz spacing"; } enum "1549.62" { value 371; description "1549.62 nm/193.46250 THz 6.25/12.5GHz spacing"; } enum "1549.57" { value 372; description "1549.57 nm/193.46875 THz 6.25GHz spacing"; } enum "1549.52" { value 373; description "1549.52 nm/193.47500 THz 6.25/12.5/75GHz spacing"; } enum "1549.47" { value 374; description "1549.47 nm/193.48125 THz 6.25GHz spacing"; } enum "1549.42" { value 375; description "1549.42 nm/193.48750 THz 6.25/12.5GHz spacing"; } enum "1549.37" { value 376; description "1549.37 nm/193.49375 THz 6.25GHz spacing"; } enum "1549.32" { value 377; description "1549.32 nm/193.50000 THz 6.25/12.5/50/100GHz spacing"; } enum "1549.26" { value 378; description "1549.26 nm/193.50625 THz 6.25GHz spacing"; } enum "1549.21" { value 379; description "1549.21 nm/193.51250 THz 6.25/12.5GHz spacing"; } enum "1549.16" { value 380; description "1549.16 nm/193.51875 THz 6.25GHz spacing"; } enum "1549.11" { value 381; description "1549.11 nm/193.52500 THz 6.25/12.5GHz spacing"; } enum "1549.06" { value 382; description "1549.06 nm/193.53125 THz 6.25GHz spacing"; } enum "1549.01" { value 383; description "1549.01 nm/193.53750 THz 6.25/12.5GHz spacing"; } enum "1548.96" { value 384; description "1548.96 nm/193.54375 THz 6.25GHz spacing"; } enum "1548.91" { value 385; description "1548.91 nm/193.55000 THz 6.25/12.5/50G/75Hz spacing"; } enum "1548.86" { value 386; description "1548.86 nm/193.55625 THz 6.25GHz spacing"; } enum "1548.81" { value 387; description "1548.81 nm/193.56250 THz 6.25/12.5GHz spacing"; } enum "1548.76" { value 388; description "1548.76 nm/193.56875 THz 6.25GHz spacing"; } enum "1548.71" { value 389; description "1548.71 nm/193.57500 THz 6.25/12.5GHz spacing"; } enum "1548.66" { value 390; description "1548.66 nm/193.58125 THz 6.25GHz spacing"; } enum "1548.61" { value 391; description "1548.61 nm/193.58750 THz 6.25/12.5GHz spacing"; } enum "1548.56" { value 392; description "1548.56 nm/193.59375 THz 6.25GHz spacing"; } enum "1548.51" { value 393; description "1548.51 nm/193.60000 THz 6.25/12.5/50/100GHz spacing"; } enum "1548.46" { value 394; description "1548.46 nm/193.60625 THz 6.25GHz spacing"; } enum "1548.41" { value 395; description "1548.41 nm/193.61250 THz 6.25/12.5GHz spacing"; } enum "1548.36" { value 396; description "1548.36 nm/193.61875 THz 6.25GHz spacing"; } enum "1548.31" { value 397; description "1548.31 nm/193.62500 THz 6.25/12.5/75GHz spacing"; } enum "1548.26" { value 398; description "1548.26 nm/193.63125 THz 6.25GHz spacing"; } enum "1548.21" { value 399; description "1548.21 nm/193.63750 THz 6.25/12.5GHz spacing"; } enum "1548.16" { value 400; description "1548.16 nm/193.64375 THz 6.25GHz spacing"; } enum "1548.11" { value 401; description "1548.11 nm/193.65000 THz 6.25/12.5/50GHz spacing"; } enum "1548.06" { value 402; description "1548.06 nm/193.65625 THz 6.25GHz spacing"; } enum "1548.02" { value 403; description "1548.02 nm/193.66250 THz 6.25/12.5GHz spacing"; } enum "1547.97" { value 404; description "1547.97 nm/193.66875 THz 6.25GHz spacing"; } enum "1547.92" { value 405; description "1547.92 nm/193.67500 THz 6.25/12.5GHz spacing"; } enum "1547.87" { value 406; description "1547.87 nm/193.68125 THz 6.25GHz spacing"; } enum "1547.82" { value 407; description "1547.82 nm/193.68750 THz 6.25/12.5GHz spacing"; } enum "1547.77" { value 408; description "1547.77 nm/193.69375 THz 6.25GHz spacing"; } enum "1547.72" { value 409; description "1547.72 nm/193.70000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1547.67" { value 410; description "1547.67 nm/193.70625 THz 6.25GHz spacing"; } enum "1547.62" { value 411; description "1547.62 nm/193.71250 THz 6.25/12.5GHz spacing"; } enum "1547.57" { value 412; description "1547.57 nm/193.71875 THz 6.25GHz spacing"; } enum "1547.52" { value 413; description "1547.52 nm/193.72500 THz 6.25/12.5GHz spacing"; } enum "1547.47" { value 414; description "1547.47 nm/193.73125 THz 6.25GHz spacing"; } enum "1547.42" { value 415; description "1547.42 nm/193.73750 THz 6.25/12.5GHz spacing"; } enum "1547.37" { value 416; description "1547.37 nm/193.74375 THz 6.25GHz spacing"; } enum "1547.32" { value 417; description "1547.32 nm/193.75000 THz 6.25/12.5/50GHz spacing"; } enum "1547.27" { value 418; description "1547.27 nm/193.75625 THz 6.25GHz spacing"; } enum "1547.22" { value 419; description "1547.22 nm/193.76250 THz 6.25/12.5GHz spacing"; } enum "1547.17" { value 420; description "1547.17 nm/193.76875 THz 6.25GHz spacing"; } enum "1547.12" { value 421; description "1547.12 nm/193.77500 THz 6.25/12.5/75GHz spacing"; } enum "1547.07" { value 422; description "1547.07 nm/193.78125 THz 6.25GHz spacing"; } enum "1547.02" { value 423; description "1547.02 nm/193.78750 THz 6.25/12.5GHz spacing"; } enum "1546.97" { value 424; description "1546.97 nm/193.79375 THz 6.25GHz spacing"; } enum "1546.92" { value 425; description "1546.92 nm/193.80000 THz 6.25/12.5/50/100GHz spacing"; } enum "1546.87" { value 426; description "1546.87 nm/193.80625 THz 6.25GHz spacing"; } enum "1546.82" { value 427; description "1546.82 nm/193.81250 THz 6.25/12.5GHz spacing"; } enum "1546.77" { value 428; description "1546.77 nm/193.81875 THz 6.25GHz spacing"; } enum "1546.72" { value 429; description "1546.72 nm/193.82500 THz 6.25/12.5GHz spacing"; } enum "1546.67" { value 430; description "1546.67 nm/193.83125 THz 6.25GHz spacing"; } enum "1546.62" { value 431; description "1546.62 nm/193.83750 THz 6.25/12.5GHz spacing"; } enum "1546.57" { value 432; description "1546.57 nm/193.84375 THz 6.25GHz spacing"; } enum "1546.52" { value 433; description "1546.52 nm/193.85000 THz 6.25/12.5/50/75GHz spacing"; } enum "1546.47" { value 434; description "1546.47 nm/193.85625 THz 6.25GHz spacing"; } enum "1546.42" { value 435; description "1546.42 nm/193.86250 THz 6.25/12.5GHz spacing"; } enum "1546.37" { value 436; description "1546.37 nm/193.86875 THz 6.25GHz spacing"; } enum "1546.32" { value 437; description "1546.32 nm/193.87500 THz 6.25/12.5GHz spacing"; } enum "1546.27" { value 438; description "1546.27 nm/193.88125 THz 6.25GHz spacing"; } enum "1546.22" { value 439; description "1546.22 nm/193.88750 THz 6.25/12.5GHz spacing"; } enum "1546.17" { value 440; description "1546.17 nm/193.89375 THz 6.25GHz spacing"; } enum "1546.12" { value 441; description "1546.12 nm/193.90000 THz 6.25/12.5/50/100GHz spacing"; } enum "1546.07" { value 442; description "1546.07 nm/193.90625 THz 6.25GHz spacing"; } enum "1546.02" { value 443; description "1546.02 nm/193.91250 THz 6.25/12.5GHz spacing"; } enum "1545.97" { value 444; description "1545.97 nm/193.91875 THz 6.25GHz spacing"; } enum "1545.92" { value 445; description "1545.92 nm/193.92500 THz 6.25/12.5/75GHz spacing"; } enum "1545.87" { value 446; description "1545.87 nm/193.93125 THz 6.25GHz spacing"; } enum "1545.82" { value 447; description "1545.82 nm/193.93750 THz 6.25/12.5GHz spacing"; } enum "1545.77" { value 448; description "1545.77 nm/193.94375 THz 6.25GHz spacing"; } enum "1545.72" { value 449; description "1545.72 nm/193.95000 THz 6.25/12.5/50GHz spacing"; } enum "1545.67" { value 450; description "1545.67 nm/193.95625 THz 6.25GHz spacing"; } enum "1545.62" { value 451; description "1545.62 nm/193.96250 THz 6.25/12.5GHz spacing"; } enum "1545.57" { value 452; description "1545.57 nm/193.96875 THz 6.25GHz spacing"; } enum "1545.52" { value 453; description "1545.52 nm/193.97500 THz 6.25/12.5GHz spacing"; } enum "1545.47" { value 454; description "1545.47 nm/193.98125 THz 6.25GHz spacing"; } enum "1545.42" { value 455; description "1545.42 nm/193.98750 THz 6.25/12.5GHz spacing"; } enum "1545.37" { value 456; description "1545.37 nm/193.99375 THz 6.25GHz spacing"; } enum "1545.32" { value 457; description "1545.32 nm/194.00000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1545.27" { value 458; description "1545.27 nm/194.00625 THz 6.25GHz spacing"; } enum "1545.22" { value 459; description "1545.22 nm/194.01250 THz 6.25/12.5GHz spacing"; } enum "1545.17" { value 460; description "1545.17 nm/194.01875 THz 6.25GHz spacing"; } enum "1545.12" { value 461; description "1545.12 nm/194.02500 THz 6.25/12.5GHz spacing"; } enum "1545.07" { value 462; description "1545.07 nm/194.03125 THz 6.25GHz spacing"; } enum "1545.02" { value 463; description "1545.02 nm/194.03750 THz 6.25/12.5GHz spacing"; } enum "1544.97" { value 464; description "1544.97 nm/194.04375 THz 6.25GHz spacing"; } enum "1544.92" { value 465; description "1544.92 nm/194.05000 THz 6.25/12.5/50GHz spacing"; } enum "1544.87" { value 466; description "1544.87 nm/194.05625 THz 6.25GHz spacing"; } enum "1544.82" { value 467; description "1544.82 nm/194.06250 THz 6.25/12.5GHz spacing"; } enum "1544.77" { value 468; description "1544.77 nm/194.06875 THz 6.25GHz spacing"; } enum "1544.72" { value 469; description "1544.72 nm/194.07500 THz 6.25/12.5/75GHz spacing"; } enum "1544.68" { value 470; description "1544.68 nm/194.08125 THz 6.25GHz spacing"; } enum "1544.63" { value 471; description "1544.63 nm/194.08750 THz 6.25/12.5GHz spacing"; } enum "1544.58" { value 472; description "1544.58 nm/194.09375 THz 6.25GHz spacing"; } enum "1544.53" { value 473; description "1544.53 nm/194.10000 THz 6.25/12.5/50/100GHz spacing"; } enum "1544.48" { value 474; description "1544.48 nm/194.10625 THz 6.25GHz spacing"; } enum "1544.43" { value 475; description "1544.43 nm/194.11250 THz 6.25/12.5GHz spacing"; } enum "1544.38" { value 476; description "1544.38 nm/194.11875 THz 6.25GHz spacing"; } enum "1544.33" { value 477; description "1544.33 nm/194.12500 THz 6.25/12.5GHz spacing"; } enum "1544.28" { value 478; description "1544.28 nm/194.13125 THz 6.25GHz spacing"; } enum "1544.23" { value 479; description "1544.23 nm/194.13750 THz 6.25/12.5GHz spacing"; } enum "1544.18" { value 480; description "1544.18 nm/194.14375 THz 6.25GHz spacing"; } enum "1544.13" { value 481; description "1544.13 nm/194.15000 THz 6.25/12.5/50/75GHz spacing"; } enum "1544.08" { value 482; description "1544.08 nm/194.15625 THz 6.25GHz spacing"; } enum "1544.03" { value 483; description "1544.03 nm/194.16250 THz 6.25/12.5GHz spacing"; } enum "1543.98" { value 484; description "1543.98 nm/194.16875 THz 6.25GHz spacing"; } enum "1543.93" { value 485; description "1543.93 nm/194.17500 THz 6.25/12.5GHz spacing"; } enum "1543.88" { value 486; description "1543.88 nm/194.18125 THz 6.25GHz spacing"; } enum "1543.83" { value 487; description "1543.83 nm/194.18750 THz 6.25/12.5GHz spacing"; } enum "1543.78" { value 488; description "1543.78 nm/194.19375 THz 6.25GHz spacing"; } enum "1543.73" { value 489; description "1543.73 nm/194.20000 THz 6.25/12.5/50/100GHz spacing"; } enum "1543.68" { value 490; description "1543.68 nm/194.20625 THz 6.25GHz spacing"; } enum "1543.63" { value 491; description "1543.63 nm/194.21250 THz 6.25/12.5GHz spacing"; } enum "1543.58" { value 492; description "1543.58 nm/194.21875 THz 6.25GHz spacing"; } enum "1543.53" { value 493; description "1543.53 nm/194.22500 THz 6.25/12.5/75GHz spacing"; } enum "1543.48" { value 494; description "1543.48 nm/194.23125 THz 6.25GHz spacing"; } enum "1543.43" { value 495; description "1543.43 nm/194.23750 THz 6.25/12.5GHz spacing"; } enum "1543.38" { value 496; description "1543.38 nm/194.24375 THz 6.25GHz spacing"; } enum "1543.33" { value 497; description "1543.33 nm/194.25000 THz 6.25/12.5/50GHz spacing"; } enum "1543.28" { value 498; description "1543.28 nm/194.25625 THz 6.25GHz spacing"; } enum "1543.23" { value 499; description "1543.23 nm/194.26250 THz 6.25/12.5GHz spacing"; } enum "1543.18" { value 500; description "1543.18 nm/194.26875 THz 6.25GHz spacing"; } enum "1543.13" { value 501; description "1543.13 nm/194.27500 THz 6.25/12.5GHz spacing"; } enum "1543.08" { value 502; description "1543.08 nm/194.28125 THz 6.25GHz spacing"; } enum "1543.04" { value 503; description "1543.04 nm/194.28750 THz 6.25/12.5GHz spacing"; } enum "1542.99" { value 504; description "1542.99 nm/194.29375 THz 6.25GHz spacing"; } enum "1542.94" { value 505; description "1542.94 nm/194.30000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1542.89" { value 506; description "1542.89 nm/194.30625 THz 6.25GHz spacing"; } enum "1542.84" { value 507; description "1542.84 nm/194.31250 THz 6.25/12.5GHz spacing"; } enum "1542.79" { value 508; description "1542.79 nm/194.31875 THz 6.25GHz spacing"; } enum "1542.74" { value 509; description "1542.74 nm/194.32500 THz 6.25/12.5GHz spacing"; } enum "1542.69" { value 510; description "1542.69 nm/194.33125 THz 6.25GHz spacing"; } enum "1542.64" { value 511; description "1542.64 nm/194.33750 THz 6.25/12.5GHz spacing"; } enum "1542.59" { value 512; description "1542.59 nm/194.34375 THz 6.25GHz spacing"; } enum "1542.54" { value 513; description "1542.54 nm/194.35000 THz 6.25/12.5/50GHz spacing"; } enum "1542.49" { value 514; description "1542.49 nm/194.35625 THz 6.25GHz spacing"; } enum "1542.44" { value 515; description "1542.44 nm/194.36250 THz 6.25/12.5GHz spacing"; } enum "1542.39" { value 516; description "1542.39 nm/194.36875 THz 6.25GHz spacing"; } enum "1542.34" { value 517; description "1542.34 nm/194.37500 THz 6.25/12.5/75GHz spacing"; } enum "1542.29" { value 518; description "1542.29 nm/194.38125 THz 6.25GHz spacing"; } enum "1542.24" { value 519; description "1542.24 nm/194.38750 THz 6.25/12.5GHz spacing"; } enum "1542.19" { value 520; description "1542.19 nm/194.39375 THz 6.25GHz spacing"; } enum "1542.14" { value 521; description "1542.14 nm/194.40000 THz 6.25/12.5/50/100GHz spacing"; } enum "1542.09" { value 522; description "1542.09 nm/194.40625 THz 6.25GHz spacing"; } enum "1542.04" { value 523; description "1542.04 nm/194.41250 THz 6.25/12.5GHz spacing"; } enum "1541.99" { value 524; description "1541.99 nm/194.41875 THz 6.25GHz spacing"; } enum "1541.94" { value 525; description "1541.94 nm/194.42500 THz 6.25/12.5GHz spacing"; } enum "1541.89" { value 526; description "1541.89 nm/194.43125 THz 6.25GHz spacing"; } enum "1541.84" { value 527; description "1541.84 nm/194.43750 THz 6.25/12.5GHz spacing"; } enum "1541.80" { value 528; description "1541.80 nm/194.44375 THz 6.25GHz spacing"; } enum "1541.75" { value 529; description "1541.75 nm/194.45000 THz 6.25/12.5/50/75GHz spacing"; } enum "1541.70" { value 530; description "1541.70 nm/194.45625 THz 6.25GHz spacing"; } enum "1541.65" { value 531; description "1541.65 nm/194.46250 THz 6.25/12.5GHz spacing"; } enum "1541.60" { value 532; description "1541.60 nm/194.46875 THz 6.25GHz spacing"; } enum "1541.55" { value 533; description "1541.55 nm/194.47500 THz 6.25/12.5GHz spacing"; } enum "1541.50" { value 534; description "1541.50 nm/194.48125 THz 6.25GHz spacing"; } enum "1541.45" { value 535; description "1541.45 nm/194.48750 THz 6.25/12.5GHz spacing"; } enum "1541.40" { value 536; description "1541.40 nm/194.49375 THz 6.25GHz spacing"; } enum "1541.35" { value 537; description "1541.35 nm/194.50000 THz 6.25/12.5/50/100GHz spacing"; } enum "1541.30" { value 538; description "1541.30 nm/194.50625 THz 6.25GHz spacing"; } enum "1541.25" { value 539; description "1541.25 nm/194.51250 THz 6.25/12.5GHz spacing"; } enum "1541.20" { value 540; description "1541.20 nm/194.51875 THz 6.25GHz spacing"; } enum "1541.15" { value 541; description "1541.15 nm/194.52500 THz 6.25/12.5/75GHz spacing"; } enum "1541.10" { value 542; description "1541.10 nm/194.53125 THz 6.25GHz spacing"; } enum "1541.05" { value 543; description "1541.05 nm/194.53750 THz 6.25/12.5GHz spacing"; } enum "1541.00" { value 544; description "1541.00 nm/194.54375 THz 6.25GHz spacing"; } enum "1540.95" { value 545; description "1540.95 nm/194.55000 THz 6.25/12.5/50GHz spacing"; } enum "1540.90" { value 546; description "1540.90 nm/194.55625 THz 6.25GHz spacing"; } enum "1540.85" { value 547; description "1540.85 nm/194.56250 THz 6.25/12.5GHz spacing"; } enum "1540.80" { value 548; description "1540.80 nm/194.56875 THz 6.25GHz spacing"; } enum "1540.76" { value 549; description "1540.76 nm/194.57500 THz 6.25/12.5GHz spacing"; } enum "1540.71" { value 550; description "1540.71 nm/194.58125 THz 6.25GHz spacing"; } enum "1540.66" { value 551; description "1540.66 nm/194.58750 THz 6.25/12.5GHz spacing"; } enum "1540.61" { value 552; description "1540.61 nm/194.59375 THz 6.25GHz spacing"; } enum "1540.56" { value 553; description "1540.56 nm/194.60000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1540.51" { value 554; description "1540.51 nm/194.60625 THz 6.25GHz spacing"; } enum "1540.46" { value 555; description "1540.46 nm/194.61250 THz 6.25/12.5GHz spacing"; } enum "1540.41" { value 556; description "1540.41 nm/194.61875 THz 6.25GHz spacing"; } enum "1540.36" { value 557; description "1540.36 nm/194.62500 THz 6.25/12.5GHz spacing"; } enum "1540.31" { value 558; description "1540.31 nm/194.63125 THz 6.25GHz spacing"; } enum "1540.26" { value 559; description "1540.26 nm/194.63750 THz 6.25/12.5GHz spacing"; } enum "1540.21" { value 560; description "1540.21 nm/194.64375 THz 6.25GHz spacing"; } enum "1540.16" { value 561; description "1540.16 nm/194.65000 THz 6.25/12.5/50GHz spacing"; } enum "1540.11" { value 562; description "1540.11 nm/194.65625 THz 6.25GHz spacing"; } enum "1540.06" { value 563; description "1540.06 nm/194.66250 THz 6.25/12.5GHz spacing"; } enum "1540.01" { value 564; description "1540.01 nm/194.66875 THz 6.25GHz spacing"; } enum "1539.96" { value 565; description "1539.96 nm/194.67500 THz 6.25/12.5/50/75GHz spacing"; } enum "1539.91" { value 566; description "1539.91 nm/194.68125 THz 6.25GHz spacing"; } enum "1539.86" { value 567; description "1539.86 nm/194.68750 THz 6.25/12.5GHz spacing"; } enum "1539.82" { value 568; description "1539.82 nm/194.69375 THz 6.25GHz spacing"; } enum "1539.77" { value 569; description "1539.77 nm/194.70000 THz 6.25/12.5/50/100GHz spacing"; } enum "1539.72" { value 570; description "1539.72 nm/194.70625 THz 6.25GHz spacing"; } enum "1539.67" { value 571; description "1539.67 nm/194.71250 THz 6.25/12.5GHz spacing"; } enum "1539.62" { value 572; description "1539.62 nm/194.71875 THz 6.25GHz spacing"; } enum "1539.57" { value 573; description "1539.57 nm/194.72500 THz 6.25/12.5GHz spacing"; } enum "1539.52" { value 574; description "1539.52 nm/194.73125 THz 6.25GHz spacing"; } enum "1539.47" { value 575; description "1539.47 nm/194.73750 THz 6.25/12.5GHz spacing"; } enum "1539.42" { value 576; description "1539.42 nm/194.74375 THz 6.25GHz spacing"; } enum "1539.37" { value 577; description "1539.37 nm/194.75000 THz 6.25/12.5/50/75GHz spacing"; } enum "1539.32" { value 578; description "1539.32 nm/194.75625 THz 6.25GHz spacing"; } enum "1539.27" { value 579; description "1539.27 nm/194.76250 THz 6.25/12.5GHz spacing"; } enum "1539.22" { value 580; description "1539.22 nm/194.76875 THz 6.25GHz spacing"; } enum "1539.17" { value 581; description "1539.17 nm/194.77500 THz 6.25/12.5GHz spacing"; } enum "1539.12" { value 582; description "1539.12 nm/194.78125 THz 6.25GHz spacing"; } enum "1539.07" { value 583; description "1539.07 nm/194.78750 THz 6.25/12.5GHz spacing"; } enum "1539.03" { value 584; description "1539.03 nm/194.79375 THz 6.25GHz spacing"; } enum "1538.98" { value 585; description "1538.98 nm/194.80000 THz 6.25/12.5/50/100GHz spacing"; } enum "1538.93" { value 586; description "1538.93 nm/194.80625 THz 6.25GHz spacing"; } enum "1538.88" { value 587; description "1538.88 nm/194.81250 THz 6.25/12.5GHz spacing"; } enum "1538.83" { value 588; description "1538.83 nm/194.81875 THz 6.25GHz spacing"; } enum "1538.78" { value 589; description "1538.78 nm/194.82500 THz 6.25/12.5/75GHz spacing"; } enum "1538.73" { value 590; description "1538.73 nm/194.83125 THz 6.25GHz spacing"; } enum "1538.68" { value 591; description "1538.68 nm/194.83750 THz 6.25/12.5GHz spacing"; } enum "1538.63" { value 592; description "1538.63 nm/194.84375 THz 6.25GHz spacing"; } enum "1538.58" { value 593; description "1538.58 nm/194.85000 THz 6.25/12.5/50GHz spacing"; } enum "1538.53" { value 594; description "1538.53 nm/194.85625 THz 6.25GHz spacing"; } enum "1538.48" { value 595; description "1538.48 nm/194.86250 THz 6.25/12.5GHz spacing"; } enum "1538.43" { value 596; description "1538.43 nm/194.86875 THz 6.25GHz spacing"; } enum "1538.38" { value 597; description "1538.38 nm/194.87500 THz 6.25/12.5/75GHz spacing"; } enum "1538.33" { value 598; description "1538.33 nm/194.88125 THz 6.25GHz spacing"; } enum "1538.28" { value 599; description "1538.28 nm/194.88750 THz 6.25/12.5GHz spacing"; } enum "1538.24" { value 600; description "1538.24 nm/194.89375 THz 6.25GHz spacing"; } enum "1538.19" { value 601; description "1538.19 nm/194.90000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1538.14" { value 602; description "1538.14 nm/194.90625 THz 6.25GHz spacing"; } enum "1538.09" { value 603; description "1538.09 nm/194.91250 THz 6.25/12.5GHz spacing"; } enum "1538.04" { value 604; description "1538.04 nm/194.91875 THz 6.25GHz spacing"; } enum "1537.99" { value 605; description "1537.99 nm/194.92500 THz 6.25/12.5GHz spacing"; } enum "1537.94" { value 606; description "1537.94 nm/194.93125 THz 6.25GHz spacing"; } enum "1537.89" { value 607; description "1537.89 nm/194.93750 THz 6.25/12.5GHz spacing"; } enum "1537.84" { value 608; description "1537.84 nm/194.94375 THz 6.25GHz spacing"; } enum "1537.79" { value 609; description "1537.79 nm/194.95000 THz 6.25/12.5/50GHz spacing"; } enum "1537.74" { value 610; description "1537.74 nm/194.95625 THz 6.25GHz spacing"; } enum "1537.69" { value 611; description "1537.69 nm/194.96250 THz 6.25/12.5GHz spacing"; } enum "1537.64" { value 612; description "1537.64 nm/194.96875 THz 6.25GHz spacing"; } enum "1537.59" { value 613; description "1537.59 nm/194.97500 THz 6.25/12.5/75GHz spacing"; } enum "1537.55" { value 614; description "1537.55 nm/194.98125 THz 6.25GHz spacing"; } enum "1537.50" { value 615; description "1537.50 nm/194.98750 THz 6.25/12.5GHz spacing"; } enum "1537.45" { value 616; description "1537.45 nm/194.99375 THz 6.25GHz spacing"; } enum "1537.40" { value 617; description "1537.40 nm/195.00000 THz 6.25/12.5/50/100GHz spacing"; } enum "1537.35" { value 618; description "1537.35 nm/195.00625 THz 6.25GHz spacing"; } enum "1537.30" { value 619; description "1537.30 nm/195.01250 THz 6.25/12.5GHz spacing"; } enum "1537.25" { value 620; description "1537.25 nm/195.01875 THz 6.25GHz spacing"; } enum "1537.20" { value 621; description "1537.20 nm/195.02500 THz 6.25/12.5GHz spacing"; } enum "1537.15" { value 622; description "1537.15 nm/195.03125 THz 6.25GHz spacing"; } enum "1537.10" { value 623; description "1537.10 nm/195.03750 THz 6.25/12.5GHz spacing"; } enum "1537.05" { value 624; description "1537.05 nm/195.04375 THz 6.25GHz spacing"; } enum "1537.00" { value 625; description "1537.00 nm/195.05000 THz 6.25/12.5/50/75GHz spacing"; } enum "1536.95" { value 626; description "1536.95 nm/195.05625 THz 6.25GHz spacing"; } enum "1536.90" { value 627; description "1536.90 nm/195.06250 THz 6.25/12.5GHz spacing"; } enum "1536.86" { value 628; description "1536.86 nm/195.06875 THz 6.25GHz spacing"; } enum "1536.81" { value 629; description "1536.81 nm/195.07500 THz 6.25/12.5GHz spacing"; } enum "1536.76" { value 630; description "1536.76 nm/195.08125 THz 6.25GHz spacing"; } enum "1536.71" { value 631; description "1536.71 nm/195.08750 THz 6.25/12.5GHz spacing"; } enum "1536.66" { value 632; description "1536.66 nm/195.09375 THz 6.25GHz spacing"; } enum "1536.61" { value 633; description "1536.61 nm/195.10000 THz 6.25/12.5/50/100GHz spacing"; } enum "1536.56" { value 634; description "1536.56 nm/195.10625 THz 6.25GHz spacing"; } enum "1536.51" { value 635; description "1536.51 nm/195.11250 THz 6.25/12.5GHz spacing"; } enum "1536.46" { value 636; description "1536.46 nm/195.11875 THz 6.25GHz spacing"; } enum "1536.41" { value 637; description "1536.41 nm/195.12500 THz 6.25/12.5/75GHz spacing"; } enum "1536.36" { value 638; description "1536.36 nm/195.13125 THz 6.25GHz spacing"; } enum "1536.31" { value 639; description "1536.31 nm/195.13750 THz 6.25/12.5GHz spacing"; } enum "1536.26" { value 640; description "1536.26 nm/195.14375 THz 6.25GHz spacing"; } enum "1536.22" { value 641; description "1536.22 nm/195.15000 THz 6.25/12.5/50GHz spacing"; } enum "1536.17" { value 642; description "1536.17 nm/195.15625 THz 6.25GHz spacing"; } enum "1536.12" { value 643; description "1536.12 nm/195.16250 THz 6.25/12.5GHz spacing"; } enum "1536.07" { value 644; description "1536.07 nm/195.16875 THz 6.25GHz spacing"; } enum "1536.02" { value 645; description "1536.02 nm/195.17500 THz 6.25/12.5GHz spacing"; } enum "1535.97" { value 646; description "1535.97 nm/195.18125 THz 6.25GHz spacing"; } enum "1535.92" { value 647; description "1535.92 nm/195.18750 THz 6.25/12.5GHz spacing"; } enum "1535.87" { value 648; description "1535.87 nm/195.19375 THz 6.25GHz spacing"; } enum "1535.82" { value 649; description "1535.82 nm/195.20000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1535.77" { value 650; description "1535.77 nm/195.20625 THz 6.25GHz spacing"; } enum "1535.72" { value 651; description "1535.72 nm/195.21250 THz 6.25/12.5GHz spacing"; } enum "1535.67" { value 652; description "1535.67 nm/195.21875 THz 6.25GHz spacing"; } enum "1535.63" { value 653; description "1535.63 nm/195.22500 THz 6.25/12.5GHz spacing"; } enum "1535.58" { value 654; description "1535.58 nm/195.23125 THz 6.25GHz spacing"; } enum "1535.53" { value 655; description "1535.53 nm/195.23750 THz 6.25/12.5GHz spacing"; } enum "1535.48" { value 656; description "1535.48 nm/195.24375 THz 6.25GHz spacing"; } enum "1535.43" { value 657; description "1535.43 nm/195.25000 THz 6.25/12.5/50GHz spacing"; } enum "1535.38" { value 658; description "1535.38 nm/195.25625 THz 6.25GHz spacing"; } enum "1535.33" { value 659; description "1535.33 nm/195.26250 THz 6.25/12.5GHz spacing"; } enum "1535.28" { value 660; description "1535.28 nm/195.26875 THz 6.25GHz spacing"; } enum "1535.23" { value 661; description "1535.23 nm/195.27500 THz 6.25/12.5/75GHz spacing"; } enum "1535.18" { value 662; description "1535.18 nm/195.28125 THz 6.25GHz spacing"; } enum "1535.13" { value 663; description "1535.13 nm/195.28750 THz 6.25/12.5GHz spacing"; } enum "1535.08" { value 664; description "1535.08 nm/195.29375 THz 6.25GHz spacing"; } enum "1535.04" { value 665; description "1535.04 nm/195.30000 THz 6.25/12.5/50/100GHz spacing"; } enum "1534.99" { value 666; description "1534.99 nm/195.30625 THz 6.25GHz spacing"; } enum "1534.94" { value 667; description "1534.94 nm/195.31250 THz 6.25/12.5GHz spacing"; } enum "1534.89" { value 668; description "1534.89 nm/195.31875 THz 6.25GHz spacing"; } enum "1534.84" { value 669; description "1534.84 nm/195.32500 THz 6.25/12.5GHz spacing"; } enum "1534.79" { value 670; description "1534.79 nm/195.33125 THz 6.25GHz spacing"; } enum "1534.74" { value 671; description "1534.74 nm/195.33750 THz 6.25/12.5GHz spacing"; } enum "1534.69" { value 672; description "1534.69 nm/195.34375 THz 6.25GHz spacing"; } enum "1534.64" { value 673; description "1534.64 nm/195.35000 THz 6.25/12.5/50/75GHz spacing"; } enum "1534.59" { value 674; description "1534.59 nm/195.35625 THz 6.25GHz spacing"; } enum "1534.54" { value 675; description "1534.54 nm/195.36250 THz 6.25/12.5GHz spacing"; } enum "1534.50" { value 676; description "1534.50 nm/195.36875 THz 6.25GHz spacing"; } enum "1534.45" { value 677; description "1534.45 nm/195.37500 THz 6.25/12.5GHz spacing"; } enum "1534.40" { value 678; description "1534.40 nm/195.38125 THz 6.25GHz spacing"; } enum "1534.35" { value 679; description "1534.35 nm/195.38750 THz 6.25/12.5GHz spacing"; } enum "1534.30" { value 680; description "1534.30 nm/195.39375 THz 6.25GHz spacing"; } enum "1534.25" { value 681; description "1534.25 nm/195.40000 THz 6.25/12.5/50/100GHz spacing"; } enum "1534.20" { value 682; description "1534.20 nm/195.40625 THz 6.25GHz spacing"; } enum "1534.15" { value 683; description "1534.15 nm/195.41250 THz 6.25/12.5GHz spacing"; } enum "1534.10" { value 684; description "1534.10 nm/195.41875 THz 6.25GHz spacing"; } enum "1534.05" { value 685; description "1534.05 nm/195.42500 THz 6.25/12.5/75GHz spacing"; } enum "1534.00" { value 686; description "1534.00 nm/195.43125 THz 6.25GHz spacing"; } enum "1533.96" { value 687; description "1533.96 nm/195.43750 THz 6.25/12.5GHz spacing"; } enum "1533.91" { value 688; description "1533.91 nm/195.44375 THz 6.25GHz spacing"; } enum "1533.86" { value 689; description "1533.86 nm/195.45000 THz 6.25/12.5/50GHz spacing"; } enum "1533.81" { value 690; description "1533.81 nm/195.45625 THz 6.25GHz spacing"; } enum "1533.76" { value 691; description "1533.76 nm/195.46250 THz 6.25/12.5GHz spacing"; } enum "1533.71" { value 692; description "1533.71 nm/195.46875 THz 6.25GHz spacing"; } enum "1533.66" { value 693; description "1533.66 nm/195.47500 THz 6.25/12.5GHz spacing"; } enum "1533.61" { value 694; description "1533.61 nm/195.48125 THz 6.25GHz spacing"; } enum "1533.56" { value 695; description "1533.56 nm/195.48750 THz 6.25/12.5GHz spacing"; } enum "1533.51" { value 696; description "1533.51 nm/195.49375 THz 6.25GHz spacing"; } enum "1533.47" { value 697; description "1533.47 nm/195.50000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1533.42" { value 698; description "1533.42 nm/195.50625 THz 6.25GHz spacing"; } enum "1533.37" { value 699; description "1533.37 nm/195.51250 THz 6.25/12.5GHz spacing"; } enum "1533.32" { value 700; description "1533.32 nm/195.51875 THz 6.25GHz spacing"; } enum "1533.27" { value 701; description "1533.27 nm/195.52500 THz 6.25/12.5GHz spacing"; } enum "1533.22" { value 702; description "1533.22 nm/195.53125 THz 6.25GHz spacing"; } enum "1533.17" { value 703; description "1533.17 nm/195.53750 THz 6.25/12.5GHz spacing"; } enum "1533.12" { value 704; description "1533.12 nm/195.54375 THz 6.25GHz spacing"; } enum "1533.07" { value 705; description "1533.07 nm/195.55000 THz 6.25/12.5/50GHz spacing"; } enum "1533.02" { value 706; description "1533.02 nm/195.55625 THz 6.25GHz spacing"; } enum "1532.98" { value 707; description "1532.98 nm/195.56250 THz 6.25/12.5GHz spacing"; } enum "1532.93" { value 708; description "1532.93 nm/195.56875 THz 6.25GHz spacing"; } enum "1532.88" { value 709; description "1532.88 nm/195.57500 THz 6.25/12.5/75GHz spacing"; } enum "1532.83" { value 710; description "1532.83 nm/195.58125 THz 6.25GHz spacing"; } enum "1532.78" { value 711; description "1532.78 nm/195.58750 THz 6.25/12.5GHz spacing"; } enum "1532.73" { value 712; description "1532.73 nm/195.59375 THz 6.25GHz spacing"; } enum "1532.68" { value 713; description "1532.68 nm/195.60000 THz 6.25/12.5/50/100GHz spacing"; } enum "1532.63" { value 714; description "1532.63 nm/195.60625 THz 6.25GHz spacing"; } enum "1532.58" { value 715; description "1532.58 nm/195.61250 THz 6.25/12.5GHz spacing"; } enum "1532.53" { value 716; description "1532.53 nm/195.61875 THz 6.25GHz spacing"; } enum "1532.49" { value 717; description "1532.49 nm/195.62500 THz 6.25/12.5GHz spacing"; } enum "1532.44" { value 718; description "1532.44 nm/195.63125 THz 6.25GHz spacing"; } enum "1532.39" { value 719; description "1532.39 nm/195.63750 THz 6.25/12.5GHz spacing"; } enum "1532.34" { value 720; description "1532.34 nm/195.64375 THz 6.25GHz spacing"; } enum "1532.29" { value 721; description "1532.29 nm/195.65000 THz 6.25/12.5/50/75GHz spacing"; } enum "1532.24" { value 722; description "1532.24 nm/195.65625 THz 6.25GHz spacing"; } enum "1532.19" { value 723; description "1532.19 nm/195.66250 THz 6.25/12.5GHz spacing"; } enum "1532.14" { value 724; description "1532.14 nm/195.66875 THz 6.25GHz spacing"; } enum "1532.09" { value 725; description "1532.09 nm/195.67500 THz 6.25/12.5GHz spacing"; } enum "1532.04" { value 726; description "1532.04 nm/195.68125 THz 6.25GHz spacing"; } enum "1532.00" { value 727; description "1532.00 nm/195.68750 THz 6.25/12.5GHz spacing"; } enum "1531.95" { value 728; description "1531.95 nm/195.69375 THz 6.25GHz spacing"; } enum "1531.90" { value 729; description "1531.90 nm/195.70000 THz 6.25/12.5/50/100GHz spacing"; } enum "1531.85" { value 730; description "1531.85 nm/195.70625 THz 6.25GHz spacing"; } enum "1531.80" { value 731; description "1531.80 nm/195.71250 THz 6.25/12.5GHz spacing"; } enum "1531.75" { value 732; description "1531.75 nm/195.71875 THz 6.25GHz spacing"; } enum "1531.70" { value 733; description "1531.70 nm/195.72500 THz 6.25/12.5/75GHz spacing"; } enum "1531.65" { value 734; description "1531.65 nm/195.73125 THz 6.25GHz spacing"; } enum "1531.60" { value 735; description "1531.60 nm/195.73750 THz 6.25/12.5GHz spacing"; } enum "1531.56" { value 736; description "1531.56 nm/195.74375 THz 6.25GHz spacing"; } enum "1531.51" { value 737; description "1531.51 nm/195.75000 THz 6.25/12.5/50GHz spacing"; } enum "1531.46" { value 738; description "1531.46 nm/195.75625 THz 6.25GHz spacing"; } enum "1531.41" { value 739; description "1531.41 nm/195.76250 THz 6.25/12.5GHz spacing"; } enum "1531.36" { value 740; description "1531.36 nm/195.76875 THz 6.25GHz spacing"; } enum "1531.31" { value 741; description "1531.31 nm/195.77500 THz 6.25/12.5GHz spacing"; } enum "1531.26" { value 742; description "1531.26 nm/195.78125 THz 6.25GHz spacing"; } enum "1531.21" { value 743; description "1531.21 nm/195.78750 THz 6.25/12.5GHz spacing"; } enum "1531.16" { value 744; description "1531.16 nm/195.79375 THz 6.25GHz spacing"; } enum "1531.12" { value 745; description "1531.12 nm/195.80000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1531.07" { value 746; description "1531.07 nm/195.80625 THz 6.25GHz spacing"; } enum "1531.02" { value 747; description "1531.02 nm/195.81250 THz 6.25/12.5GHz spacing"; } enum "1530.97" { value 748; description "1530.97 nm/195.81875 THz 6.25GHz spacing"; } enum "1530.92" { value 749; description "1530.92 nm/195.82500 THz 6.25/12.5GHz spacing"; } enum "1530.87" { value 750; description "1530.87 nm/195.83125 THz 6.25GHz spacing"; } enum "1530.82" { value 751; description "1530.82 nm/195.83750 THz 6.25/12.5GHz spacing"; } enum "1530.77" { value 752; description "1530.77 nm/195.84375 THz 6.25GHz spacing"; } enum "1530.72" { value 753; description "1530.72 nm/195.85000 THz 6.25/12.5/50GHz spacing"; } enum "1530.68" { value 754; description "1530.68 nm/195.85625 THz 6.25GHz spacing"; } enum "1530.63" { value 755; description "1530.63 nm/195.86250 THz 6.25/12.5GHz spacing"; } enum "1530.58" { value 756; description "1530.58 nm/195.86875 THz 6.25GHz spacing"; } enum "1530.53" { value 757; description "1530.53 nm/195.87500 THz 6.25/12.5/75GHz spacing"; } enum "1530.48" { value 758; description "1530.48 nm/195.88125 THz 6.25GHz spacing"; } enum "1530.43" { value 759; description "1530.43 nm/195.88750 THz 6.25/12.5GHz spacing"; } enum "1530.38" { value 760; description "1530.38 nm/195.89375 THz 6.25GHz spacing"; } enum "1530.33" { value 761; description "1530.33 nm/195.90000 THz 6.25/12.5/50/100GHz spacing"; } enum "1530.29" { value 762; description "1530.29 nm/195.90625 THz 6.25GHz spacing"; } enum "1530.24" { value 763; description "1530.24 nm/195.91250 THz 6.25/12.5GHz spacing"; } enum "1530.19" { value 764; description "1530.19 nm/195.91875 THz 6.25GHz spacing"; } enum "1530.14" { value 765; description "1530.14 nm/195.92500 THz 6.25/12.5GHz spacing"; } enum "1530.09" { value 766; description "1530.09 nm/195.93125 THz 6.25GHz spacing"; } enum "1530.04" { value 767; description "1530.04 nm/195.93750 THz 6.25/12.5GHz spacing"; } enum "1529.99" { value 768; description "1529.99 nm/195.94375 THz 6.25GHz spacing"; } enum "1529.94" { value 769; description "1529.94 nm/195.95000 THz 6.25/12.5/50/75GHz spacing"; } enum "1529.89" { value 770; description "1529.89 nm/195.95625 THz 6.25GHz spacing"; } enum "1529.85" { value 771; description "1529.85 nm/195.96250 THz 6.25/12.5GHz spacing"; } enum "1529.80" { value 772; description "1529.80 nm/195.96875 THz 6.25GHz spacing"; } enum "1529.75" { value 773; description "1529.75 nm/195.97500 THz 6.25/12.5GHz spacing"; } enum "1529.70" { value 774; description "1529.70 nm/195.98125 THz 6.25GHz spacing"; } enum "1529.65" { value 775; description "1529.65 nm/195.98750 THz 6.25/12.5GHz spacing"; } enum "1529.60" { value 776; description "1529.60 nm/195.99375 THz 6.25GHz spacing"; } enum "1529.55" { value 777; description "1529.55 nm/196.00000 THz 6.25/12.5/50/100GHz spacing"; } enum "1529.50" { value 778; description "1529.50 nm/196.00625 THz 6.25GHz spacing"; } enum "1529.46" { value 779; description "1529.46 nm/196.01250 THz 6.25/12.5GHz spacing"; } enum "1529.41" { value 780; description "1529.41 nm/196.01875 THz 6.25GHz spacing"; } enum "1529.36" { value 781; description "1529.36 nm/196.02500 THz 6.25/12.5/75GHz spacing"; } enum "1529.31" { value 782; description "1529.31 nm/196.03125 THz 6.25GHz spacing"; } enum "1529.26" { value 783; description "1529.26 nm/196.03750 THz 6.25/12.5GHz spacing"; } enum "1529.21" { value 784; description "1529.21 nm/196.04375 THz 6.25GHz spacing"; } enum "1529.16" { value 785; description "1529.16 nm/196.05000 THz 6.25/12.5/50GHz spacing"; } enum "1529.11" { value 786; description "1529.11 nm/196.05625 THz 6.25GHz spacing"; } enum "1529.07" { value 787; description "1529.07 nm/196.06250 THz 6.25/12.5GHz spacing"; } enum "1529.02" { value 788; description "1529.02 nm/196.06875 THz 6.25GHz spacing"; } enum "1528.97" { value 789; description "1528.97 nm/196.07500 THz 6.25/12.5GHz spacing"; } enum "1528.92" { value 790; description "1528.92 nm/196.08125 THz 6.25GHz spacing"; } enum "1528.87" { value 791; description "1528.87 nm/196.08750 THz 6.25/12.5GHz spacing"; } enum "1528.82" { value 792; description "1528.82 nm/196.09375 THz 6.25GHz spacing"; } enum "1528.77" { value 793; description "1528.77 nm/196.10000 THz 6.25/12.5/50/75/100GHz spacing"; } enum "1528.38" { value 794; description "1528.38 nm/196.15040 THz 50Ghz spacing"; } } description "Optical channel wavelength in nanometers"; } leaf frequency { type enumeration { enum "191.1003" { value 0; description "191.1003 THz/1568.77 nm 50/100Ghz spacing"; } enum "191.15000" { value 1; description "191.15000 THz/1568.36 nm 6.25/12.5/50GHz spacing"; } enum "191.15625" { value 2; description "191.15625 THz/1568.31 nm 6.25GHz spacing"; } enum "191.16250" { value 3; description "191.16250 THz/1568.26 nm 6.25/12.5GHz spacing"; } enum "191.16875" { value 4; description "191.16875 THz/1568.21 nm 6.25GHz spacing"; } enum "191.17500" { value 5; description "191.17500 THz/1568.16 nm 6.25/12.5GHz spacing"; } enum "191.18125" { value 6; description "191.18125 THz/1568.11 nm 6.25GHz spacing"; } enum "191.18750" { value 7; description "191.18750 THz/1568.05 nm 6.25/12.5GHz spacing"; } enum "191.19375" { value 8; description "191.19375 THz/1568.00 nm 6.25GHz spacing"; } enum "191.20000" { value 9; description "191.20000 THz/1567.95 nm 6.25/12.5/50/100GHz spacing"; } enum "191.20625" { value 10; description "191.20625 THz/1567.90 nm 6.25GHz spacing"; } enum "191.21250" { value 11; description "191.21250 THz/1567.85 nm 6.25/12.5GHz spacing"; } enum "191.21875" { value 12; description "191.21875 THz/1567.80 nm 6.25GHz spacing"; } enum "191.22500" { value 13; description "191.22500 THz/1567.75 nm 6.25/12.5GHz spacing"; } enum "191.23125" { value 14; description "191.23125 THz/1567.70 nm 6.25GHz spacing"; } enum "191.23750" { value 15; description "191.23750 THz/1567.64 nm 6.25/12.5GHz spacing"; } enum "191.24375" { value 16; description "191.24375 THz/1567.59 nm 6.25GHz spacing"; } enum "191.25000" { value 17; description "191.25000 THz/1567.54 nm 6.25/12.5/50GHz spacing"; } enum "191.25625" { value 18; description "191.25625 THz/1567.49 nm 6.25GHz spacing"; } enum "191.26250" { value 19; description "191.26250 THz/1567.44 nm 6.25/12.5GHz spacing"; } enum "191.26875" { value 20; description "191.26875 THz/1567.39 nm 6.25GHz spacing"; } enum "191.27500" { value 21; description "191.27500 THz/1567.34 nm 6.25/12.5GHz spacing"; } enum "191.28125" { value 22; description "191.28125 THz/1567.29 nm 6.25GHz spacing"; } enum "191.28750" { value 23; description "191.28750 THz/1567.23 nm 6.25/12.5GHz spacing"; } enum "191.29375" { value 24; description "191.29375 THz/1567.18 nm 6.25GHz spacing"; } enum "191.30000" { value 25; description "191.30000 THz/1567.13 nm 6.25/12.5/50/100GHz spacing"; } enum "191.30625" { value 26; description "191.30625 THz/1567.08 nm 6.25GHz spacing"; } enum "191.31250" { value 27; description "191.31250 THz/1567.03 nm 6.25/12.5GHz spacing"; } enum "191.31875" { value 28; description "191.31875 THz/1566.98 nm 6.25GHz spacing"; } enum "191.32500" { value 29; description "191.32500 THz/1566.93 nm 6.25/12.5GHz spacing"; } enum "191.33125" { value 30; description "191.33125 THz/1566.88 nm 6.25GHz spacing"; } enum "191.33750" { value 31; description "191.33750 THz/1566.83 nm 6.25/12.5GHz spacing"; } enum "191.34375" { value 32; description "191.34375 THz/1566.77 nm 6.25GHz spacing"; } enum "191.35000" { value 33; description "191.35000 THz/1566.72 nm 6.25/12.5/50GHz spacing"; } enum "191.35625" { value 34; description "191.35625 THz/1566.67 nm 6.25GHz spacing"; } enum "191.36250" { value 35; description "191.36250 THz/1566.62 nm 6.25/12.5GHz spacing"; } enum "191.36875" { value 36; description "191.36875 THz/1566.57 nm 6.25GHz spacing"; } enum "191.37500" { value 37; description "191.37500 THz/1566.52 nm 6.25/12.5/75GHz spacing"; } enum "191.38125" { value 38; description "191.38125 THz/1566.47 nm 6.25GHz spacing"; } enum "191.38750" { value 39; description "191.38750 THz/1566.42 nm 6.25/12.5GHz spacing"; } enum "191.39375" { value 40; description "191.39375 THz/1566.36 nm 6.25GHz spacing"; } enum "191.40000" { value 41; description "191.40000 THz/1566.31 nm 6.25/12.5/50/100GHz spacing"; } enum "191.40625" { value 42; description "191.40625 THz/1566.26 nm 6.25GHz spacing"; } enum "191.41250" { value 43; description "191.41250 THz/1566.21 nm 6.25/12.5GHz spacing"; } enum "191.41875" { value 44; description "191.41875 THz/1566.16 nm 6.25GHz spacing"; } enum "191.42500" { value 45; description "191.42500 THz/1566.11 nm 6.25/12.5GHz spacing"; } enum "191.43125" { value 46; description "191.43125 THz/1566.06 nm 6.25GHz spacing"; } enum "191.43750" { value 47; description "191.43750 THz/1566.01 nm 6.25/12.5GHz spacing"; } enum "191.44375" { value 48; description "191.44375 THz/1565.96 nm 6.25GHz spacing"; } enum "191.45000" { value 49; description "191.45000 THz/1565.90 nm 6.25/12.5/50/75GHz spacing"; } enum "191.45625" { value 50; description "191.45625 THz/1565.85 nm 6.25GHz spacing"; } enum "191.46250" { value 51; description "191.46250 THz/1565.80 nm 6.25/12.5GHz spacing"; } enum "191.46875" { value 52; description "191.46875 THz/1565.75 nm 6.25GHz spacing"; } enum "191.47500" { value 53; description "191.47500 THz/1565.70 nm 6.25/12.5GHz spacing"; } enum "191.48125" { value 54; description "191.48125 THz/1565.65 nm 6.25GHz spacing"; } enum "191.48750" { value 55; description "191.48750 THz/1565.60 nm 6.25/12.5GHz spacing"; } enum "191.49375" { value 56; description "191.49375 THz/1565.55 nm 6.25GHz spacing"; } enum "191.50000" { value 57; description "191.50000 THz/1565.50 nm 6.25/12.5/50/100GHz spacing"; } enum "191.50625" { value 58; description "191.50625 THz/1565.44 nm 6.25GHz spacing"; } enum "191.51250" { value 59; description "191.51250 THz/1565.39 nm 6.25/12.5GHz spacing"; } enum "191.51875" { value 60; description "191.51875 THz/1565.34 nm 6.25GHz spacing"; } enum "191.52500" { value 61; description "191.52500 THz/1565.29 nm 6.25/12.5/75GHz spacing"; } enum "191.53125" { value 62; description "191.53125 THz/1565.24 nm 6.25GHz spacing"; } enum "191.53750" { value 63; description "191.53750 THz/1565.19 nm 6.25/12.5GHz spacing"; } enum "191.54375" { value 64; description "191.54375 THz/1565.14 nm 6.25GHz spacing"; } enum "191.55000" { value 65; description "191.55000 THz/1565.09 nm 6.25/12.5/50GHz spacing"; } enum "191.55625" { value 66; description "191.55625 THz/1565.04 nm 6.25GHz spacing"; } enum "191.56250" { value 67; description "191.56250 THz/1564.99 nm 6.25/12.5GHz spacing"; } enum "191.56875" { value 68; description "191.56875 THz/1564.93 nm 6.25GHz spacing"; } enum "191.57500" { value 69; description "191.57500 THz/1564.88 nm 6.25/12.5GHz spacing"; } enum "191.58125" { value 70; description "191.58125 THz/1564.83 nm 6.25GHz spacing"; } enum "191.58750" { value 71; description "191.58750 THz/1564.78 nm 6.25/12.5GHz spacing"; } enum "191.59375" { value 72; description "191.59375 THz/1564.73 nm 6.25GHz spacing"; } enum "191.60000" { value 73; description "191.60000 THz/1564.68 nm 6.25/12.5/50/75/100GHz spacing"; } enum "191.60625" { value 74; description "191.60625 THz/1564.63 nm 6.25GHz spacing"; } enum "191.61250" { value 75; description "191.61250 THz/1564.58 nm 6.25/12.5GHz spacing"; } enum "191.61875" { value 76; description "191.61875 THz/1564.53 nm 6.25GHz spacing"; } enum "191.62500" { value 77; description "191.62500 THz/1564.47 nm 6.25/12.5GHz spacing"; } enum "191.63125" { value 78; description "191.63125 THz/1564.42 nm 6.25GHz spacing"; } enum "191.63750" { value 79; description "191.63750 THz/1564.37 nm 6.25/12.5GHz spacing"; } enum "191.64375" { value 80; description "191.64375 THz/1564.32 nm 6.25GHz spacing"; } enum "191.65000" { value 81; description "191.65000 THz/1564.27 nm 6.25/12.5/50GHz spacing"; } enum "191.65625" { value 82; description "191.65625 THz/1564.22 nm 6.25GHz spacing"; } enum "191.66250" { value 83; description "191.66250 THz/1564.17 nm 6.25/12.5GHz spacing"; } enum "191.66875" { value 84; description "191.66875 THz/1564.12 nm 6.25GHz spacing"; } enum "191.67500" { value 85; description "191.67500 THz/1564.07 nm 6.25/12.5/75GHz spacing"; } enum "191.68125" { value 86; description "191.68125 THz/1564.02 nm 6.25GHz spacing"; } enum "191.68750" { value 87; description "191.68750 THz/1563.96 nm 6.25/12.5GHz spacing"; } enum "191.69375" { value 88; description "191.69375 THz/1563.91 nm 6.25GHz spacing"; } enum "191.70000" { value 89; description "191.70000 THz/1563.86 nm 6.25/12.5/50/100GHz spacing"; } enum "191.70625" { value 90; description "191.70625 THz/1563.81 nm 6.25GHz spacing"; } enum "191.71250" { value 91; description "191.71250 THz/1563.76 nm 6.25/12.5GHz spacing"; } enum "191.71875" { value 92; description "191.71875 THz/1563.71 nm 6.25GHz spacing"; } enum "191.72500" { value 93; description "191.72500 THz/1563.66 nm 6.25/12.5GHz spacing"; } enum "191.73125" { value 94; description "191.73125 THz/1563.61 nm 6.25GHz spacing"; } enum "191.73750" { value 95; description "191.73750 THz/1563.56 nm 6.25/12.5GHz spacing"; } enum "191.74375" { value 96; description "191.74375 THz/1563.51 nm 6.25GHz spacing"; } enum "191.75000" { value 97; description "191.75000 THz/1563.45 nm 6.25/12.5/50/75GHz spacing"; } enum "191.75625" { value 98; description "191.75625 THz/1563.40 nm 6.25GHz spacing"; } enum "191.76250" { value 99; description "191.76250 THz/1563.35 nm 6.25/12.5GHz spacing"; } enum "191.76875" { value 100; description "191.76875 THz/1563.30 nm 6.25GHz spacing"; } enum "191.77500" { value 101; description "191.77500 THz/1563.25 nm 6.25/12.5GHz spacing"; } enum "191.78125" { value 102; description "191.78125 THz/1563.20 nm 6.25GHz spacing"; } enum "191.78750" { value 103; description "191.78750 THz/1563.15 nm 6.25/12.5GHz spacing"; } enum "191.79375" { value 104; description "191.79375 THz/1563.10 nm 6.25GHz spacing"; } enum "191.80000" { value 105; description "191.80000 THz/1563.05 nm 6.25/12.5/50/100GHz spacing"; } enum "191.80625" { value 106; description "191.80625 THz/1563.00 nm 6.25GHz spacing"; } enum "191.81250" { value 107; description "191.81250 THz/1562.95 nm 6.25/12.5GHz spacing"; } enum "191.81875" { value 108; description "191.81875 THz/1562.89 nm 6.25GHz spacing"; } enum "191.82500" { value 109; description "191.82500 THz/1562.84 nm 6.25/12.5/75GHz spacing"; } enum "191.83125" { value 110; description "191.83125 THz/1562.79 nm 6.25GHz spacing"; } enum "191.83750" { value 111; description "191.83750 THz/1562.74 nm 6.25/12.5GHz spacing"; } enum "191.84375" { value 112; description "191.84375 THz/1562.69 nm 6.25GHz spacing"; } enum "191.85000" { value 113; description "191.85000 THz/1562.64 nm 6.25/12.5/50GHz spacing"; } enum "191.85625" { value 114; description "191.85625 THz/1562.59 nm 6.25GHz spacing"; } enum "191.86250" { value 115; description "191.86250 THz/1562.54 nm 6.25/12.5GHz spacing"; } enum "191.86875" { value 116; description "191.86875 THz/1562.49 nm 6.25GHz spacing"; } enum "191.87500" { value 117; description "191.87500 THz/1562.44 nm 6.25/12.5GHz spacing"; } enum "191.88125" { value 118; description "191.88125 THz/1562.39 nm 6.25GHz spacing"; } enum "191.88750" { value 119; description "191.88750 THz/1562.33 nm 6.25/12.5GHz spacing"; } enum "191.89375" { value 120; description "191.89375 THz/1562.28 nm 6.25GHz spacing"; } enum "191.90000" { value 121; description "191.90000 THz/1562.23 nm 6.25/12.5/50/75/100GHz spacing"; } enum "191.90625" { value 122; description "191.90625 THz/1562.18 nm 6.25GHz spacing"; } enum "191.91250" { value 123; description "191.91250 THz/1562.13 nm 6.25/12.5GHz spacing"; } enum "191.91875" { value 124; description "191.91875 THz/1562.08 nm 6.25GHz spacing"; } enum "191.92500" { value 125; description "191.92500 THz/1562.03 nm 6.25/12.5GHz spacing"; } enum "191.93125" { value 126; description "191.93125 THz/1561.98 nm 6.25GHz spacing"; } enum "191.93750" { value 127; description "191.93750 THz/1561.93 nm 6.25/12.5GHz spacing"; } enum "191.94375" { value 128; description "191.94375 THz/1561.88 nm 6.25GHz spacing"; } enum "191.95000" { value 129; description "191.95000 THz/1561.83 nm 6.25/12.5/50GHz spacing"; } enum "191.95625" { value 130; description "191.95625 THz/1561.77 nm 6.25GHz spacing"; } enum "191.96250" { value 131; description "191.96250 THz/1561.72 nm 6.25/12.5GHz spacing"; } enum "191.96875" { value 132; description "191.96875 THz/1561.67 nm 6.25GHz spacing"; } enum "191.97500" { value 133; description "191.97500 THz/1561.62 nm 6.25/12.5/75GHz spacing"; } enum "191.98125" { value 134; description "191.98125 THz/1561.57 nm 6.25GHz spacing"; } enum "191.98750" { value 135; description "191.98750 THz/1561.52 nm 6.25/12.5GHz spacing"; } enum "191.99375" { value 136; description "191.99375 THz/1561.47 nm 6.25GHz spacing"; } enum "192.00000" { value 137; description "192.00000 THz/1561.42 nm 6.25/12.5/50/100GHz spacing"; } enum "192.00625" { value 138; description "192.00625 THz/1561.37 nm 6.25GHz spacing"; } enum "192.01250" { value 139; description "192.01250 THz/1561.32 nm 6.25/12.5GHz spacing"; } enum "192.01875" { value 140; description "192.01875 THz/1561.27 nm 6.25GHz spacing"; } enum "192.02500" { value 141; description "192.02500 THz/1561.22 nm 6.25/12.5GHz spacing"; } enum "192.03125" { value 142; description "192.03125 THz/1561.16 nm 6.25GHz spacing"; } enum "192.03750" { value 143; description "192.03750 THz/1561.11 nm 6.25/12.5GHz spacing"; } enum "192.04375" { value 144; description "192.04375 THz/1561.06 nm 6.25GHz spacing"; } enum "192.05000" { value 145; description "192.05000 THz/1561.01 nm 6.25/12.5/50/75GHz spacing"; } enum "192.05625" { value 146; description "192.05625 THz/1560.96 nm 6.25GHz spacing"; } enum "192.06250" { value 147; description "192.06250 THz/1560.91 nm 6.25/12.5GHz spacing"; } enum "192.06875" { value 148; description "192.06875 THz/1560.86 nm 6.25GHz spacing"; } enum "192.07500" { value 149; description "192.07500 THz/1560.81 nm 6.25/12.5GHz spacing"; } enum "192.08125" { value 150; description "192.08125 THz/1560.76 nm 6.25GHz spacing"; } enum "192.08750" { value 151; description "192.08750 THz/1560.71 nm 6.25/12.5GHz spacing"; } enum "192.09375" { value 152; description "192.09375 THz/1560.66 nm 6.25GHz spacing"; } enum "192.10000" { value 153; description "192.10000 THz/1560.61 nm 6.25/12.5/50/100GHz spacing"; } enum "192.10625" { value 154; description "192.10625 THz/1560.56 nm 6.25GHz spacing"; } enum "192.11250" { value 155; description "192.11250 THz/1560.50 nm 6.25/12.5GHz spacing"; } enum "192.11875" { value 156; description "192.11875 THz/1560.45 nm 6.25GHz spacing"; } enum "192.12500" { value 157; description "192.12500 THz/1560.40 nm 6.25/12.5/75GHz spacing"; } enum "192.13125" { value 158; description "192.13125 THz/1560.35 nm 6.25GHz spacing"; } enum "192.13750" { value 159; description "192.13750 THz/1560.30 nm 6.25/12.5GHz spacing"; } enum "192.14375" { value 160; description "192.14375 THz/1560.25 nm 6.25GHz spacing"; } enum "192.15000" { value 161; description "192.15000 THz/1560.20 nm 6.25/12.5/50GHz spacing"; } enum "192.15625" { value 162; description "192.15625 THz/1560.15 nm 6.25GHz spacing"; } enum "192.16250" { value 163; description "192.16250 THz/1560.10 nm 6.25/12.5GHz spacing"; } enum "192.16875" { value 164; description "192.16875 THz/1560.05 nm 6.25GHz spacing"; } enum "192.17500" { value 165; description "192.17500 THz/1560.00 nm 6.25/12.5GHz spacing"; } enum "192.18125" { value 166; description "192.18125 THz/1559.95 nm 6.25GHz spacing"; } enum "192.18750" { value 167; description "192.18750 THz/1559.90 nm 6.25/12.5GHz spacing"; } enum "192.19375" { value 168; description "192.19375 THz/1559.84 nm 6.25GHz spacing"; } enum "192.20000" { value 169; description "192.20000 THz/1559.79 nm 6.25/12.5/50/75/100GHz spacing"; } enum "192.20625" { value 170; description "192.20625 THz/1559.74 nm 6.25GHz spacing"; } enum "192.21250" { value 171; description "192.21250 THz/1559.69 nm 6.25/12.5GHz spacing"; } enum "192.21875" { value 172; description "192.21875 THz/1559.64 nm 6.25GHz spacing"; } enum "192.22500" { value 173; description "192.22500 THz/1559.59 nm 6.25/12.5GHz spacing"; } enum "192.23125" { value 174; description "192.23125 THz/1559.54 nm 6.25GHz spacing"; } enum "192.23750" { value 175; description "192.23750 THz/1559.49 nm 6.25/12.5GHz spacing"; } enum "192.24375" { value 176; description "192.24375 THz/1559.44 nm 6.25GHz spacing"; } enum "192.25000" { value 177; description "192.25000 THz/1559.39 nm 6.25/12.5/50GHz spacing"; } enum "192.25625" { value 178; description "192.25625 THz/1559.34 nm 6.25GHz spacing"; } enum "192.26250" { value 179; description "192.26250 THz/1559.29 nm 6.25/12.5GHz spacing"; } enum "192.26875" { value 180; description "192.26875 THz/1559.24 nm 6.25GHz spacing"; } enum "192.27500" { value 181; description "192.27500 THz/1559.19 nm 6.25/12.5GHz spacing"; } enum "192.28125" { value 182; description "192.28125 THz/1559.14 nm 6.25GHz spacing"; } enum "192.28750" { value 183; description "192.28750 THz/1559.08 nm 6.25/12.5GHz spacing"; } enum "192.29375" { value 184; description "192.29375 THz/1559.03 nm 6.25GHz spacing"; } enum "192.30000" { value 185; description "192.30000 THz/1558.98 nm 6.25/12.5/50/100GHz spacing"; } enum "192.30625" { value 186; description "192.30625 THz/1558.93 nm 6.25GHz spacing"; } enum "192.31250" { value 187; description "192.31250 THz/1558.88 nm 6.25/12.5GHz spacing"; } enum "192.31875" { value 188; description "192.31875 THz/1558.83 nm 6.25GHz spacing"; } enum "192.32500" { value 189; description "192.32500 THz/1558.78 nm 6.25/12.5GHz spacing"; } enum "192.33125" { value 190; description "192.33125 THz/1558.73 nm 6.25GHz spacing"; } enum "192.33750" { value 191; description "192.33750 THz/1558.68 nm 6.25/12.5GHz spacing"; } enum "192.34375" { value 192; description "192.34375 THz/1558.63 nm 6.25GHz spacing"; } enum "192.35000" { value 193; description "192.35000 THz/1558.58 nm 6.25/12.5/50/75GHz spacing"; } enum "192.35625" { value 194; description "192.35625 THz/1558.53 nm 6.25GHz spacing"; } enum "192.36250" { value 195; description "192.36250 THz/1558.48 nm 6.25/12.5GHz spacing"; } enum "192.36875" { value 196; description "192.36875 THz/1558.43 nm 6.25GHz spacing"; } enum "192.37500" { value 197; description "192.37500 THz/1558.38 nm 6.25/12.5GHz spacing"; } enum "192.38125" { value 198; description "192.38125 THz/1558.32 nm 6.25GHz spacing"; } enum "192.38750" { value 199; description "192.38750 THz/1558.27 nm 6.25/12.5GHz spacing"; } enum "192.39375" { value 200; description "192.39375 THz/1558.22 nm 6.25GHz spacing"; } enum "192.40000" { value 201; description "192.40000 THz/1558.17 nm 6.25/12.5/50/100GHz spacing"; } enum "192.40625" { value 202; description "192.40625 THz/1558.12 nm 6.25GHz spacing"; } enum "192.41250" { value 203; description "192.41250 THz/1558.07 nm 6.25/12.5GHz spacing"; } enum "192.41875" { value 204; description "192.41875 THz/1558.02 nm 6.25GHz spacing"; } enum "192.42500" { value 205; description "192.42500 THz/1557.97 nm 6.25/12.5/75GHz spacing"; } enum "192.43125" { value 206; description "192.43125 THz/1557.92 nm 6.25GHz spacing"; } enum "192.43750" { value 207; description "192.43750 THz/1557.87 nm 6.25/12.5GHz spacing"; } enum "192.44375" { value 208; description "192.44375 THz/1557.82 nm 6.25GHz spacing"; } enum "192.45000" { value 209; description "192.45000 THz/1557.77 nm 6.25/12.5/50GHz spacing"; } enum "192.45625" { value 210; description "192.45625 THz/1557.72 nm 6.25GHz spacing"; } enum "192.46250" { value 211; description "192.46250 THz/1557.67 nm 6.25/12.5GHz spacing"; } enum "192.46875" { value 212; description "192.46875 THz/1557.62 nm 6.25GHz spacing"; } enum "192.47500" { value 213; description "192.47500 THz/1557.57 nm 6.25/12.5GHz spacing"; } enum "192.48125" { value 214; description "192.48125 THz/1557.52 nm 6.25GHz spacing"; } enum "192.48750" { value 215; description "192.48750 THz/1557.46 nm 6.25/12.5GHz spacing"; } enum "192.49375" { value 216; description "192.49375 THz/1557.41 nm 6.25GHz spacing"; } enum "192.50000" { value 217; description "192.50000 THz/1557.36 nm 6.25/12.5/50/75/100GHz spacing"; } enum "192.50625" { value 218; description "192.50625 THz/1557.31 nm 6.25GHz spacing"; } enum "192.51250" { value 219; description "192.51250 THz/1557.26 nm 6.25/12.5GHz spacing"; } enum "192.51875" { value 220; description "192.51875 THz/1557.21 nm 6.25GHz spacing"; } enum "192.52500" { value 221; description "192.52500 THz/1557.16 nm 6.25/12.5GHz spacing"; } enum "192.53125" { value 222; description "192.53125 THz/1557.11 nm 6.25GHz spacing"; } enum "192.53750" { value 223; description "192.53750 THz/1557.06 nm 6.25/12.5GHz spacing"; } enum "192.54375" { value 224; description "192.54375 THz/1557.01 nm 6.25GHz spacing"; } enum "192.55000" { value 225; description "192.55000 THz/1556.96 nm 6.25/12.5/50GHz spacing"; } enum "192.55625" { value 226; description "192.55625 THz/1556.91 nm 6.25GHz spacing"; } enum "192.56250" { value 227; description "192.56250 THz/1556.86 nm 6.25/12.5GHz spacing"; } enum "192.56875" { value 228; description "192.56875 THz/1556.81 nm 6.25GHz spacing"; } enum "192.57500" { value 229; description "192.57500 THz/1556.76 nm 6.25/12.5/75GHz spacing"; } enum "192.58125" { value 230; description "192.58125 THz/1556.71 nm 6.25GHz spacing"; } enum "192.58750" { value 231; description "192.58750 THz/1556.66 nm 6.25/12.5GHz spacing"; } enum "192.59375" { value 232; description "192.59375 THz/1556.61 nm 6.25GHz spacing"; } enum "192.60000" { value 233; description "192.60000 THz/1556.55 nm 6.25/12.5/50/100GHz spacing"; } enum "192.60625" { value 234; description "192.60625 THz/1556.50 nm 6.25GHz spacing"; } enum "192.61250" { value 235; description "192.61250 THz/1556.45 nm 6.25/12.5GHz spacing"; } enum "192.61875" { value 236; description "192.61875 THz/1556.40 nm 6.25GHz spacing"; } enum "192.62500" { value 237; description "192.62500 THz/1556.35 nm 6.25/12.5GHz spacing"; } enum "192.63125" { value 238; description "192.63125 THz/1556.30 nm 6.25GHz spacing"; } enum "192.63750" { value 239; description "192.63750 THz/1556.25 nm 6.25/12.5GHz spacing"; } enum "192.64375" { value 240; description "192.64375 THz/1556.20 nm 6.25GHz spacing"; } enum "192.65000" { value 241; description "192.65000 THz/1556.15 nm 6.25/12.5/50/75GHz spacing"; } enum "192.65625" { value 242; description "192.65625 THz/1556.10 nm 6.25GHz spacing"; } enum "192.66250" { value 243; description "192.66250 THz/1556.05 nm 6.25/12.5GHz spacing"; } enum "192.66875" { value 244; description "192.66875 THz/1556.00 nm 6.25GHz spacing"; } enum "192.67500" { value 245; description "192.67500 THz/1555.95 nm 6.25/12.5GHz spacing"; } enum "192.68125" { value 246; description "192.68125 THz/1555.90 nm 6.25GHz spacing"; } enum "192.68750" { value 247; description "192.68750 THz/1555.85 nm 6.25/12.5GHz spacing"; } enum "192.69375" { value 248; description "192.69375 THz/1555.80 nm 6.25GHz spacing"; } enum "192.70000" { value 249; description "192.70000 THz/1555.75 nm 6.25/12.5/50/100GHz spacing"; } enum "192.70625" { value 250; description "192.70625 THz/1555.70 nm 6.25GHz spacing"; } enum "192.71250" { value 251; description "192.71250 THz/1555.65 nm 6.25/12.5GHz spacing"; } enum "192.71875" { value 252; description "192.71875 THz/1555.60 nm 6.25GHz spacing"; } enum "192.72500" { value 253; description "192.72500 THz/1555.55 nm 6.25/12.5/75GHz spacing"; } enum "192.73125" { value 254; description "192.73125 THz/1555.49 nm 6.25GHz spacing"; } enum "192.73750" { value 255; description "192.73750 THz/1555.44 nm 6.25/12.5GHz spacing"; } enum "192.74375" { value 256; description "192.74375 THz/1555.39 nm 6.25GHz spacing"; } enum "192.75000" { value 257; description "192.75000 THz/1555.34 nm 6.25/12.5/50GHz spacing"; } enum "192.75625" { value 258; description "192.75625 THz/1555.29 nm 6.25GHz spacing"; } enum "192.76250" { value 259; description "192.76250 THz/1555.24 nm 6.25/12.5GHz spacing"; } enum "192.76875" { value 260; description "192.76875 THz/1555.19 nm 6.25GHz spacing"; } enum "192.77500" { value 261; description "192.77500 THz/1555.14 nm 6.25/12.5GHz spacing"; } enum "192.78125" { value 262; description "192.78125 THz/1555.09 nm 6.25GHz spacing"; } enum "192.78750" { value 263; description "192.78750 THz/1555.04 nm 6.25/12.5GHz spacing"; } enum "192.79375" { value 264; description "192.79375 THz/1554.99 nm 6.25GHz spacing"; } enum "192.80000" { value 265; description "192.80000 THz/1554.94 nm 6.25/12.5/50/75/100GHz spacing"; } enum "192.80625" { value 266; description "192.80625 THz/1554.89 nm 6.25GHz spacing"; } enum "192.81250" { value 267; description "192.81250 THz/1554.84 nm 6.25/12.5GHz spacing"; } enum "192.81875" { value 268; description "192.81875 THz/1554.79 nm 6.25GHz spacing"; } enum "192.82500" { value 269; description "192.82500 THz/1554.74 nm 6.25/12.5GHz spacing"; } enum "192.83125" { value 270; description "192.83125 THz/1554.69 nm 6.25GHz spacing"; } enum "192.83750" { value 271; description "192.83750 THz/1554.64 nm 6.25/12.5GHz spacing"; } enum "192.84375" { value 272; description "192.84375 THz/1554.59 nm 6.25GHz spacing"; } enum "192.85000" { value 273; description "192.85000 THz/1554.54 nm 6.25/12.5/50GHz spacing"; } enum "192.85625" { value 274; description "192.85625 THz/1554.49 nm 6.25GHz spacing"; } enum "192.86250" { value 275; description "192.86250 THz/1554.44 nm 6.25/12.5GHz spacing"; } enum "192.86875" { value 276; description "192.86875 THz/1554.39 nm 6.25GHz spacing"; } enum "192.87500" { value 277; description "192.87500 THz/1554.34 nm 6.25/12.5/75GHz spacing"; } enum "192.88125" { value 278; description "192.88125 THz/1554.29 nm 6.25GHz spacing"; } enum "192.88750" { value 279; description "192.88750 THz/1554.23 nm 6.25/12.5GHz spacing"; } enum "192.89375" { value 280; description "192.89375 THz/1554.18 nm 6.25GHz spacing"; } enum "192.90000" { value 281; description "192.90000 THz/1554.13 nm 6.25/12.5/50/100GHz spacing"; } enum "192.90625" { value 282; description "192.90625 THz/1554.08 nm 6.25GHz spacing"; } enum "192.91250" { value 283; description "192.91250 THz/1554.03 nm 6.25/12.5GHz spacing"; } enum "192.91875" { value 284; description "192.91875 THz/1553.98 nm 6.25GHz spacing"; } enum "192.92500" { value 285; description "192.92500 THz/1553.93 nm 6.25/12.5GHz spacing"; } enum "192.93125" { value 286; description "192.93125 THz/1553.88 nm 6.25GHz spacing"; } enum "192.93750" { value 287; description "192.93750 THz/1553.83 nm 6.25/12.5GHz spacing"; } enum "192.94375" { value 288; description "192.94375 THz/1553.78 nm 6.25GHz spacing"; } enum "192.95000" { value 289; description "192.95000 THz/1553.73 nm 6.25/12.5/50/75GHz spacing"; } enum "192.95625" { value 290; description "192.95625 THz/1553.68 nm 6.25GHz spacing"; } enum "192.96250" { value 291; description "192.96250 THz/1553.63 nm 6.25/12.5GHz spacing"; } enum "192.96875" { value 292; description "192.96875 THz/1553.58 nm 6.25GHz spacing"; } enum "192.97500" { value 293; description "192.97500 THz/1553.53 nm 6.25/12.5GHz spacing"; } enum "192.98125" { value 294; description "192.98125 THz/1553.48 nm 6.25GHz spacing"; } enum "192.98750" { value 295; description "192.98750 THz/1553.43 nm 6.25/12.5GHz spacing"; } enum "192.99375" { value 296; description "192.99375 THz/1553.38 nm 6.25GHz spacing"; } enum "193.00000" { value 297; description "193.00000 THz/1553.33 nm 6.25/12.5/50/100GHz spacing"; } enum "193.00625" { value 298; description "193.00625 THz/1553.28 nm 6.25GHz spacing"; } enum "193.01250" { value 299; description "193.01250 THz/1553.23 nm 6.25/12.5GHz spacing"; } enum "193.01875" { value 300; description "193.01875 THz/1553.18 nm 6.25GHz spacing"; } enum "193.02500" { value 301; description "193.02500 THz/1553.13 nm 6.25/12.5/75GHz spacing"; } enum "193.03125" { value 302; description "193.03125 THz/1553.08 nm 6.25GHz spacing"; } enum "193.03750" { value 303; description "193.03750 THz/1553.03 nm 6.25/12.5GHz spacing"; } enum "193.04375" { value 304; description "193.04375 THz/1552.98 nm 6.25GHz spacing"; } enum "193.05000" { value 305; description "193.05000 THz/1552.93 nm 6.25/12.5/50GHz spacing"; } enum "193.05625" { value 306; description "193.05625 THz/1552.88 nm 6.25GHz spacing"; } enum "193.06250" { value 307; description "193.06250 THz/1552.83 nm 6.25/12.5GHz spacing"; } enum "193.06875" { value 308; description "193.06875 THz/1552.78 nm 6.25GHz spacing"; } enum "193.07500" { value 309; description "193.07500 THz/1552.73 nm 6.25/12.5GHz spacing"; } enum "193.08125" { value 310; description "193.08125 THz/1552.68 nm 6.25GHz spacing"; } enum "193.08750" { value 311; description "193.08750 THz/1552.62 nm 6.25/12.5GHz spacing"; } enum "193.09375" { value 312; description "193.09375 THz/1552.57 nm 6.25GHz spacing"; } enum "193.10000" { value 313; description "193.10000 THz/1552.52 nm 6.25/12.5/50/75/100GHz spacing"; } enum "193.10625" { value 314; description "193.10625 THz/1552.47 nm 6.25GHz spacing"; } enum "193.11250" { value 315; description "193.11250 THz/1552.42 nm 6.25/12.5GHz spacing"; } enum "193.11875" { value 316; description "193.11875 THz/1552.37 nm 6.25GHz spacing"; } enum "193.12500" { value 317; description "193.12500 THz/1552.32 nm 6.25/12.5GHz spacing"; } enum "193.13125" { value 318; description "193.13125 THz/1552.27 nm 6.25GHz spacing"; } enum "193.13750" { value 319; description "193.13750 THz/1552.22 nm 6.25/12.5GHz spacing"; } enum "193.14375" { value 320; description "193.14375 THz/1552.17 nm 6.25GHz spacing"; } enum "193.15000" { value 321; description "193.15000 THz/1552.12 nm 6.25/12.5/50GHz spacing"; } enum "193.15625" { value 322; description "193.15625 THz/1552.07 nm 6.25GHz spacing"; } enum "193.16250" { value 323; description "193.16250 THz/1552.02 nm 6.25/12.5GHz spacing"; } enum "193.16875" { value 324; description "193.16875 THz/1551.97 nm 6.25GHz spacing"; } enum "193.17500" { value 325; description "193.17500 THz/1551.92 nm 6.25/12.5/75GHz spacing"; } enum "193.18125" { value 326; description "193.18125 THz/1551.87 nm 6.25GHz spacing"; } enum "193.18750" { value 327; description "193.18750 THz/1551.82 nm 6.25/12.5GHz spacing"; } enum "193.19375" { value 328; description "193.19375 THz/1551.77 nm 6.25GHz spacing"; } enum "193.20000" { value 329; description "193.20000 THz/1551.72 nm 6.25/12.5/50/100GHz spacing"; } enum "193.20625" { value 330; description "193.20625 THz/1551.67 nm 6.25GHz spacing"; } enum "193.21250" { value 331; description "193.21250 THz/1551.62 nm 6.25/12.5GHz spacing"; } enum "193.21875" { value 332; description "193.21875 THz/1551.57 nm 6.25GHz spacing"; } enum "193.22500" { value 333; description "193.22500 THz/1551.52 nm 6.25/12.5GHz spacing"; } enum "193.23125" { value 334; description "193.23125 THz/1551.47 nm 6.25GHz spacing"; } enum "193.23750" { value 335; description "193.23750 THz/1551.42 nm 6.25/12.5GHz spacing"; } enum "193.24375" { value 336; description "193.24375 THz/1551.37 nm 6.25GHz spacing"; } enum "193.25000" { value 337; description "193.25000 THz/1551.32 nm 6.25/12.5/50/75GHz spacing"; } enum "193.25625" { value 338; description "193.25625 THz/1551.27 nm 6.25GHz spacing"; } enum "193.26250" { value 339; description "193.26250 THz/1551.22 nm 6.25/12.5GHz spacing"; } enum "193.26875" { value 340; description "193.26875 THz/1551.17 nm 6.25GHz spacing"; } enum "193.27500" { value 341; description "193.27500 THz/1551.12 nm 6.25/12.5GHz spacing"; } enum "193.28125" { value 342; description "193.28125 THz/1551.07 nm 6.25GHz spacing"; } enum "193.28750" { value 343; description "193.28750 THz/1551.02 nm 6.25/12.5GHz spacing"; } enum "193.29375" { value 344; description "193.29375 THz/1550.97 nm 6.25GHz spacing"; } enum "193.30000" { value 345; description "193.30000 THz/1550.92 nm 6.25/12.5/50/100GHz spacing"; } enum "193.30625" { value 346; description "193.30625 THz/1550.87 nm 6.25GHz spacing"; } enum "193.31250" { value 347; description "193.31250 THz/1550.82 nm 6.25/12.5GHz spacing"; } enum "193.31875" { value 348; description "193.31875 THz/1550.77 nm 6.25GHz spacing"; } enum "193.32500" { value 349; description "193.32500 THz/1550.72 nm 6.25/12.5/75GHz spacing"; } enum "193.33125" { value 350; description "193.33125 THz/1550.67 nm 6.25GHz spacing"; } enum "193.33750" { value 351; description "193.33750 THz/1550.62 nm 6.25/12.5GHz spacing"; } enum "193.34375" { value 352; description "193.34375 THz/1550.57 nm 6.25GHz spacing"; } enum "193.35000" { value 353; description "193.35000 THz/1550.52 nm 6.25/12.5/50GHz spacing"; } enum "193.35625" { value 354; description "193.35625 THz/1550.47 nm 6.25GHz spacing"; } enum "193.36250" { value 355; description "193.36250 THz/1550.42 nm 6.25/12.5GHz spacing"; } enum "193.36875" { value 356; description "193.36875 THz/1550.37 nm 6.25GHz spacing"; } enum "193.37500" { value 357; description "193.37500 THz/1550.32 nm 6.25/12.5GHz spacing"; } enum "193.38125" { value 358; description "193.38125 THz/1550.27 nm 6.25GHz spacing"; } enum "193.38750" { value 359; description "193.38750 THz/1550.22 nm 6.25/12.5GHz spacing"; } enum "193.39375" { value 360; description "193.39375 THz/1550.17 nm 6.25GHz spacing"; } enum "193.40000" { value 361; description "193.40000 THz/1550.12 nm 6.25/12.5/50/75/100GHz spacing"; } enum "193.40625" { value 362; description "193.40625 THz/1550.07 nm 6.25GHz spacing"; } enum "193.41250" { value 363; description "193.41250 THz/1550.02 nm 6.25/12.5GHz spacing"; } enum "193.41875" { value 364; description "193.41875 THz/1549.97 nm 6.25GHz spacing"; } enum "193.42500" { value 365; description "193.42500 THz/1549.92 nm 6.25/12.5GHz spacing"; } enum "193.43125" { value 366; description "193.43125 THz/1549.87 nm 6.25GHz spacing"; } enum "193.43750" { value 367; description "193.43750 THz/1549.82 nm 6.25/12.5GHz spacing"; } enum "193.44375" { value 368; description "193.44375 THz/1549.77 nm 6.25GHz spacing"; } enum "193.45000" { value 369; description "193.45000 THz/1549.72 nm 6.25/12.5/50GHz spacing"; } enum "193.45625" { value 370; description "193.45625 THz/1549.67 nm 6.25GHz spacing"; } enum "193.46250" { value 371; description "193.46250 THz/1549.62 nm 6.25/12.5GHz spacing"; } enum "193.46875" { value 372; description "193.46875 THz/1549.57 nm 6.25GHz spacing"; } enum "193.47500" { value 373; description "193.47500 THz/1549.52 nm 6.25/12.5/75GHz spacing"; } enum "193.48125" { value 374; description "193.48125 THz/1549.47 nm 6.25GHz spacing"; } enum "193.48750" { value 375; description "193.48750 THz/1549.42 nm 6.25/12.5GHz spacing"; } enum "193.49375" { value 376; description "193.49375 THz/1549.37 nm 6.25GHz spacing"; } enum "193.50000" { value 377; description "193.50000 THz/1549.32 nm 6.25/12.5/50/100GHz spacing"; } enum "193.50625" { value 378; description "193.50625 THz/1549.26 nm 6.25GHz spacing"; } enum "193.51250" { value 379; description "193.51250 THz/1549.21 nm 6.25/12.5GHz spacing"; } enum "193.51875" { value 380; description "193.51875 THz/1549.16 nm 6.25GHz spacing"; } enum "193.52500" { value 381; description "193.52500 THz/1549.11 nm 6.25/12.5GHz spacing"; } enum "193.53125" { value 382; description "193.53125 THz/1549.06 nm 6.25GHz spacing"; } enum "193.53750" { value 383; description "193.53750 THz/1549.01 nm 6.25/12.5GHz spacing"; } enum "193.54375" { value 384; description "193.54375 THz/1548.96 nm 6.25GHz spacing"; } enum "193.55000" { value 385; description "193.55000 THz/1548.91 nm 6.25/12.5/50/75GHz spacing"; } enum "193.55625" { value 386; description "193.55625 THz/1548.86 nm 6.25GHz spacing"; } enum "193.56250" { value 387; description "193.56250 THz/1548.81 nm 6.25/12.5GHz spacing"; } enum "193.56875" { value 388; description "193.56875 THz/1548.76 nm 6.25GHz spacing"; } enum "193.57500" { value 389; description "193.57500 THz/1548.71 nm 6.25/12.5GHz spacing"; } enum "193.58125" { value 390; description "193.58125 THz/1548.66 nm 6.25GHz spacing"; } enum "193.58750" { value 391; description "193.58750 THz/1548.61 nm 6.25/12.5GHz spacing"; } enum "193.59375" { value 392; description "193.59375 THz/1548.56 nm 6.25GHz spacing"; } enum "193.60000" { value 393; description "193.60000 THz/1548.51 nm 6.25/12.5/50/100GHz spacing"; } enum "193.60625" { value 394; description "193.60625 THz/1548.46 nm 6.25GHz spacing"; } enum "193.61250" { value 395; description "193.61250 THz/1548.41 nm 6.25/12.5GHz spacing"; } enum "193.61875" { value 396; description "193.61875 THz/1548.36 nm 6.25GHz spacing"; } enum "193.62500" { value 397; description "193.62500 THz/1548.31 nm 6.25/12.5/75GHz spacing"; } enum "193.63125" { value 398; description "193.63125 THz/1548.26 nm 6.25GHz spacing"; } enum "193.63750" { value 399; description "193.63750 THz/1548.21 nm 6.25/12.5GHz spacing"; } enum "193.64375" { value 400; description "193.64375 THz/1548.16 nm 6.25GHz spacing"; } enum "193.65000" { value 401; description "193.65000 THz/1548.11 nm 6.25/12.5/50GHz spacing"; } enum "193.65625" { value 402; description "193.65625 THz/1548.06 nm 6.25GHz spacing"; } enum "193.66250" { value 403; description "193.66250 THz/1548.02 nm 6.25/12.5GHz spacing"; } enum "193.66875" { value 404; description "193.66875 THz/1547.97 nm 6.25GHz spacing"; } enum "193.67500" { value 405; description "193.67500 THz/1547.92 nm 6.25/12.5GHz spacing"; } enum "193.68125" { value 406; description "193.68125 THz/1547.87 nm 6.25GHz spacing"; } enum "193.68750" { value 407; description "193.68750 THz/1547.82 nm 6.25/12.5GHz spacing"; } enum "193.69375" { value 408; description "193.69375 THz/1547.77 nm 6.25GHz spacing"; } enum "193.70000" { value 409; description "193.70000 THz/1547.72 nm 6.25/12.5/50/100/75GHz spacing"; } enum "193.70625" { value 410; description "193.70625 THz/1547.67 nm 6.25GHz spacing"; } enum "193.71250" { value 411; description "193.71250 THz/1547.62 nm 6.25/12.5GHz spacing"; } enum "193.71875" { value 412; description "193.71875 THz/1547.57 nm 6.25GHz spacing"; } enum "193.72500" { value 413; description "193.72500 THz/1547.52 nm 6.25/12.5GHz spacing"; } enum "193.73125" { value 414; description "193.73125 THz/1547.47 nm 6.25GHz spacing"; } enum "193.73750" { value 415; description "193.73750 THz/1547.42 nm 6.25/12.5GHz spacing"; } enum "193.74375" { value 416; description "193.74375 THz/1547.37 nm 6.25GHz spacing"; } enum "193.75000" { value 417; description "193.75000 THz/1547.32 nm 6.25/12.5/50GHz spacing"; } enum "193.75625" { value 418; description "193.75625 THz/1547.27 nm 6.25GHz spacing"; } enum "193.76250" { value 419; description "193.76250 THz/1547.22 nm 6.25/12.5GHz spacing"; } enum "193.76875" { value 420; description "193.76875 THz/1547.17 nm 6.25GHz spacing"; } enum "193.77500" { value 421; description "193.77500 THz/1547.12 nm 6.25/12.5/75GHz spacing"; } enum "193.78125" { value 422; description "193.78125 THz/1547.07 nm 6.25GHz spacing"; } enum "193.78750" { value 423; description "193.78750 THz/1547.02 nm 6.25/12.5GHz spacing"; } enum "193.79375" { value 424; description "193.79375 THz/1546.97 nm 6.25GHz spacing"; } enum "193.80000" { value 425; description "193.80000 THz/1546.92 nm 6.25/12.5/50/100GHz spacing"; } enum "193.80625" { value 426; description "193.80625 THz/1546.87 nm 6.25GHz spacing"; } enum "193.81250" { value 427; description "193.81250 THz/1546.82 nm 6.25/12.5GHz spacing"; } enum "193.81875" { value 428; description "193.81875 THz/1546.77 nm 6.25GHz spacing"; } enum "193.82500" { value 429; description "193.82500 THz/1546.72 nm 6.25/12.5GHz spacing"; } enum "193.83125" { value 430; description "193.83125 THz/1546.67 nm 6.25GHz spacing"; } enum "193.83750" { value 431; description "193.83750 THz/1546.62 nm 6.25/12.5GHz spacing"; } enum "193.84375" { value 432; description "193.84375 THz/1546.57 nm 6.25GHz spacing"; } enum "193.85000" { value 433; description "193.85000 THz/1546.52 nm 6.25/12.5/50/75GHz spacing"; } enum "193.85625" { value 434; description "193.85625 THz/1546.47 nm 6.25GHz spacing"; } enum "193.86250" { value 435; description "193.86250 THz/1546.42 nm 6.25/12.5GHz spacing"; } enum "193.86875" { value 436; description "193.86875 THz/1546.37 nm 6.25GHz spacing"; } enum "193.87500" { value 437; description "193.87500 THz/1546.32 nm 6.25/12.5GHz spacing"; } enum "193.88125" { value 438; description "193.88125 THz/1546.27 nm 6.25GHz spacing"; } enum "193.88750" { value 439; description "193.88750 THz/1546.22 nm 6.25/12.5GHz spacing"; } enum "193.89375" { value 440; description "193.89375 THz/1546.17 nm 6.25GHz spacing"; } enum "193.90000" { value 441; description "193.90000 THz/1546.12 nm 6.25/12.5/50/100GHz spacing"; } enum "193.90625" { value 442; description "193.90625 THz/1546.07 nm 6.25GHz spacing"; } enum "193.91250" { value 443; description "193.91250 THz/1546.02 nm 6.25/12.5GHz spacing"; } enum "193.91875" { value 444; description "193.91875 THz/1545.97 nm 6.25GHz spacing"; } enum "193.92500" { value 445; description "193.92500 THz/1545.92 nm 6.25/12.5/75GHz spacing"; } enum "193.93125" { value 446; description "193.93125 THz/1545.87 nm 6.25GHz spacing"; } enum "193.93750" { value 447; description "193.93750 THz/1545.82 nm 6.25/12.5GHz spacing"; } enum "193.94375" { value 448; description "193.94375 THz/1545.77 nm 6.25GHz spacing"; } enum "193.95000" { value 449; description "193.95000 THz/1545.72 nm 6.25/12.5/50GHz spacing"; } enum "193.95625" { value 450; description "193.95625 THz/1545.67 nm 6.25GHz spacing"; } enum "193.96250" { value 451; description "193.96250 THz/1545.62 nm 6.25/12.5GHz spacing"; } enum "193.96875" { value 452; description "193.96875 THz/1545.57 nm 6.25GHz spacing"; } enum "193.97500" { value 453; description "193.97500 THz/1545.52 nm 6.25/12.5GHz spacing"; } enum "193.98125" { value 454; description "193.98125 THz/1545.47 nm 6.25GHz spacing"; } enum "193.98750" { value 455; description "193.98750 THz/1545.42 nm 6.25/12.5GHz spacing"; } enum "193.99375" { value 456; description "193.99375 THz/1545.37 nm 6.25GHz spacing"; } enum "194.00000" { value 457; description "194.00000 THz/1545.32 nm 6.25/12.5/50/75/100GHz spacing"; } enum "194.00625" { value 458; description "194.00625 THz/1545.27 nm 6.25GHz spacing"; } enum "194.01250" { value 459; description "194.01250 THz/1545.22 nm 6.25/12.5GHz spacing"; } enum "194.01875" { value 460; description "194.01875 THz/1545.17 nm 6.25GHz spacing"; } enum "194.02500" { value 461; description "194.02500 THz/1545.12 nm 6.25/12.5GHz spacing"; } enum "194.03125" { value 462; description "194.03125 THz/1545.07 nm 6.25GHz spacing"; } enum "194.03750" { value 463; description "194.03750 THz/1545.02 nm 6.25/12.5GHz spacing"; } enum "194.04375" { value 464; description "194.04375 THz/1544.97 nm 6.25GHz spacing"; } enum "194.05000" { value 465; description "194.05000 THz/1544.92 nm 6.25/12.5/50GHz spacing"; } enum "194.05625" { value 466; description "194.05625 THz/1544.87 nm 6.25GHz spacing"; } enum "194.06250" { value 467; description "194.06250 THz/1544.82 nm 6.25/12.5GHz spacing"; } enum "194.06875" { value 468; description "194.06875 THz/1544.77 nm 6.25GHz spacing"; } enum "194.07500" { value 469; description "194.07500 THz/1544.72 nm 6.25/12.5/75GHz spacing"; } enum "194.08125" { value 470; description "194.08125 THz/1544.68 nm 6.25GHz spacing"; } enum "194.08750" { value 471; description "194.08750 THz/1544.63 nm 6.25/12.5GHz spacing"; } enum "194.09375" { value 472; description "194.09375 THz/1544.58 nm 6.25GHz spacing"; } enum "194.10000" { value 473; description "194.10000 THz/1544.53 nm 6.25/12.5/50/100GHz spacing"; } enum "194.10625" { value 474; description "194.10625 THz/1544.48 nm 6.25GHz spacing"; } enum "194.11250" { value 475; description "194.11250 THz/1544.43 nm 6.25/12.5GHz spacing"; } enum "194.11875" { value 476; description "194.11875 THz/1544.38 nm 6.25GHz spacing"; } enum "194.12500" { value 477; description "194.12500 THz/1544.33 nm 6.25/12.5GHz spacing"; } enum "194.13125" { value 478; description "194.13125 THz/1544.28 nm 6.25GHz spacing"; } enum "194.13750" { value 479; description "194.13750 THz/1544.23 nm 6.25/12.5GHz spacing"; } enum "194.14375" { value 480; description "194.14375 THz/1544.18 nm 6.25GHz spacing"; } enum "194.15000" { value 481; description "194.15000 THz/1544.13 nm 6.25/12.5/50/75GHz spacing"; } enum "194.15625" { value 482; description "194.15625 THz/1544.08 nm 6.25GHz spacing"; } enum "194.16250" { value 483; description "194.16250 THz/1544.03 nm 6.25/12.5GHz spacing"; } enum "194.16875" { value 484; description "194.16875 THz/1543.98 nm 6.25GHz spacing"; } enum "194.17500" { value 485; description "194.17500 THz/1543.93 nm 6.25/12.5GHz spacing"; } enum "194.18125" { value 486; description "194.18125 THz/1543.88 nm 6.25GHz spacing"; } enum "194.18750" { value 487; description "194.18750 THz/1543.83 nm 6.25/12.5GHz spacing"; } enum "194.19375" { value 488; description "194.19375 THz/1543.78 nm 6.25GHz spacing"; } enum "194.20000" { value 489; description "194.20000 THz/1543.73 nm 6.25/12.5/50/100GHz spacing"; } enum "194.20625" { value 490; description "194.20625 THz/1543.68 nm 6.25GHz spacing"; } enum "194.21250" { value 491; description "194.21250 THz/1543.63 nm 6.25/12.5GHz spacing"; } enum "194.21875" { value 492; description "194.21875 THz/1543.58 nm 6.25GHz spacing"; } enum "194.22500" { value 493; description "194.22500 THz/1543.53 nm 6.25/12.5/75GHz spacing"; } enum "194.23125" { value 494; description "194.23125 THz/1543.48 nm 6.25GHz spacing"; } enum "194.23750" { value 495; description "194.23750 THz/1543.43 nm 6.25/12.5GHz spacing"; } enum "194.24375" { value 496; description "194.24375 THz/1543.38 nm 6.25GHz spacing"; } enum "194.25000" { value 497; description "194.25000 THz/1543.33 nm 6.25/12.5/50/75GHz spacing"; } enum "194.25625" { value 498; description "194.25625 THz/1543.28 nm 6.25GHz spacing"; } enum "194.26250" { value 499; description "194.26250 THz/1543.23 nm 6.25/12.5GHz spacing"; } enum "194.26875" { value 500; description "194.26875 THz/1543.18 nm 6.25GHz spacing"; } enum "194.27500" { value 501; description "194.27500 THz/1543.13 nm 6.25/12.5GHz spacing"; } enum "194.28125" { value 502; description "194.28125 THz/1543.08 nm 6.25GHz spacing"; } enum "194.28750" { value 503; description "194.28750 THz/1543.04 nm 6.25/12.5GHz spacing"; } enum "194.29375" { value 504; description "194.29375 THz/1542.99 nm 6.25GHz spacing"; } enum "194.30000" { value 505; description "194.30000 THz/1542.94 nm 6.25/12.5/50/75/100GHz spacing"; } enum "194.30625" { value 506; description "194.30625 THz/1542.89 nm 6.25GHz spacing"; } enum "194.31250" { value 507; description "194.31250 THz/1542.84 nm 6.25/12.5GHz spacing"; } enum "194.31875" { value 508; description "194.31875 THz/1542.79 nm 6.25GHz spacing"; } enum "194.32500" { value 509; description "194.32500 THz/1542.74 nm 6.25/12.5GHz spacing"; } enum "194.33125" { value 510; description "194.33125 THz/1542.69 nm 6.25GHz spacing"; } enum "194.33750" { value 511; description "194.33750 THz/1542.64 nm 6.25/12.5GHz spacing"; } enum "194.34375" { value 512; description "194.34375 THz/1542.59 nm 6.25GHz spacing"; } enum "194.35000" { value 513; description "194.35000 THz/1542.54 nm 6.25/12.5/50GHz spacing"; } enum "194.35625" { value 514; description "194.35625 THz/1542.49 nm 6.25GHz spacing"; } enum "194.36250" { value 515; description "194.36250 THz/1542.44 nm 6.25/12.5GHz spacing"; } enum "194.36875" { value 516; description "194.36875 THz/1542.39 nm 6.25GHz spacing"; } enum "194.37500" { value 517; description "194.37500 THz/1542.34 nm 6.25/12.5/75GHz spacing"; } enum "194.38125" { value 518; description "194.38125 THz/1542.29 nm 6.25GHz spacing"; } enum "194.38750" { value 519; description "194.38750 THz/1542.24 nm 6.25/12.5GHz spacing"; } enum "194.39375" { value 520; description "194.39375 THz/1542.19 nm 6.25GHz spacing"; } enum "194.40000" { value 521; description "194.40000 THz/1542.14 nm 6.25/12.5/50/100GHz spacing"; } enum "194.40625" { value 522; description "194.40625 THz/1542.09 nm 6.25GHz spacing"; } enum "194.41250" { value 523; description "194.41250 THz/1542.04 nm 6.25/12.5GHz spacing"; } enum "194.41875" { value 524; description "194.41875 THz/1541.99 nm 6.25GHz spacing"; } enum "194.42500" { value 525; description "194.42500 THz/1541.94 nm 6.25/12.5GHz spacing"; } enum "194.43125" { value 526; description "194.43125 THz/1541.89 nm 6.25GHz spacing"; } enum "194.43750" { value 527; description "194.43750 THz/1541.84 nm 6.25/12.5GHz spacing"; } enum "194.44375" { value 528; description "194.44375 THz/1541.80 nm 6.25GHz spacing"; } enum "194.45000" { value 529; description "194.45000 THz/1541.75 nm 6.25/12.5/50/75GHz spacing"; } enum "194.45625" { value 530; description "194.45625 THz/1541.70 nm 6.25GHz spacing"; } enum "194.46250" { value 531; description "194.46250 THz/1541.65 nm 6.25/12.5GHz spacing"; } enum "194.46875" { value 532; description "194.46875 THz/1541.60 nm 6.25GHz spacing"; } enum "194.47500" { value 533; description "194.47500 THz/1541.55 nm 6.25/12.5GHz spacing"; } enum "194.48125" { value 534; description "194.48125 THz/1541.50 nm 6.25GHz spacing"; } enum "194.48750" { value 535; description "194.48750 THz/1541.45 nm 6.25/12.5GHz spacing"; } enum "194.49375" { value 536; description "194.49375 THz/1541.40 nm 6.25GHz spacing"; } enum "194.50000" { value 537; description "194.50000 THz/1541.35 nm 6.25/12.5/50/100GHz spacing"; } enum "194.50625" { value 538; description "194.50625 THz/1541.30 nm 6.25GHz spacing"; } enum "194.51250" { value 539; description "194.51250 THz/1541.25 nm 6.25/12.5GHz spacing"; } enum "194.51875" { value 540; description "194.51875 THz/1541.20 nm 6.25GHz spacing"; } enum "194.52500" { value 541; description "194.52500 THz/1541.15 nm 6.25/12.5/75GHz spacing"; } enum "194.53125" { value 542; description "194.53125 THz/1541.10 nm 6.25GHz spacing"; } enum "194.53750" { value 543; description "194.53750 THz/1541.05 nm 6.25/12.5GHz spacing"; } enum "194.54375" { value 544; description "194.54375 THz/1541.00 nm 6.25GHz spacing"; } enum "194.55000" { value 545; description "194.55000 THz/1540.95 nm 6.25/12.5/50GHz spacing"; } enum "194.55625" { value 546; description "194.55625 THz/1540.90 nm 6.25GHz spacing"; } enum "194.56250" { value 547; description "194.56250 THz/1540.85 nm 6.25/12.5GHz spacing"; } enum "194.56875" { value 548; description "194.56875 THz/1540.80 nm 6.25GHz spacing"; } enum "194.57500" { value 549; description "194.57500 THz/1540.76 nm 6.25/12.5GHz spacing"; } enum "194.58125" { value 550; description "194.58125 THz/1540.71 nm 6.25GHz spacing"; } enum "194.58750" { value 551; description "194.58750 THz/1540.66 nm 6.25/12.5GHz spacing"; } enum "194.59375" { value 552; description "194.59375 THz/1540.61 nm 6.25GHz spacing"; } enum "194.60000" { value 553; description "194.60000 THz/1540.56 nm 6.25/12.5/50/75/100GHz spacing"; } enum "194.60625" { value 554; description "194.60625 THz/1540.51 nm 6.25GHz spacing"; } enum "194.61250" { value 555; description "194.61250 THz/1540.46 nm 6.25/12.5GHz spacing"; } enum "194.61875" { value 556; description "194.61875 THz/1540.41 nm 6.25GHz spacing"; } enum "194.62500" { value 557; description "194.62500 THz/1540.36 nm 6.25/12.5GHz spacing"; } enum "194.63125" { value 558; description "194.63125 THz/1540.31 nm 6.25GHz spacing"; } enum "194.63750" { value 559; description "194.63750 THz/1540.26 nm 6.25/12.5GHz spacing"; } enum "194.64375" { value 560; description "194.64375 THz/1540.21 nm 6.25GHz spacing"; } enum "194.65000" { value 561; description "194.65000 THz/1540.16 nm 6.25/12.5/50GHz spacing"; } enum "194.65625" { value 562; description "194.65625 THz/1540.11 nm 6.25GHz spacing"; } enum "194.66250" { value 563; description "194.66250 THz/1540.06 nm 6.25/12.5GHz spacing"; } enum "194.66875" { value 564; description "194.66875 THz/1540.01 nm 6.25GHz spacing"; } enum "194.67500" { value 565; description "194.67500 THz/1539.96 nm 6.25/12.5/75GHz spacing"; } enum "194.68125" { value 566; description "194.68125 THz/1539.91 nm 6.25GHz spacing"; } enum "194.68750" { value 567; description "194.68750 THz/1539.86 nm 6.25/12.5GHz spacing"; } enum "194.69375" { value 568; description "194.69375 THz/1539.82 nm 6.25GHz spacing"; } enum "194.70000" { value 569; description "194.70000 THz/1539.77 nm 6.25/12.5/50/100GHz spacing"; } enum "194.70625" { value 570; description "194.70625 THz/1539.72 nm 6.25GHz spacing"; } enum "194.71250" { value 571; description "194.71250 THz/1539.67 nm 6.25/12.5GHz spacing"; } enum "194.71875" { value 572; description "194.71875 THz/1539.62 nm 6.25GHz spacing"; } enum "194.72500" { value 573; description "194.72500 THz/1539.57 nm 6.25/12.5GHz spacing"; } enum "194.73125" { value 574; description "194.73125 THz/1539.52 nm 6.25GHz spacing"; } enum "194.73750" { value 575; description "194.73750 THz/1539.47 nm 6.25/12.5GHz spacing"; } enum "194.74375" { value 576; description "194.74375 THz/1539.42 nm 6.25GHz spacing"; } enum "194.75000" { value 577; description "194.75000 THz/1539.37 nm 6.25/12.5/50/75GHz spacing"; } enum "194.75625" { value 578; description "194.75625 THz/1539.32 nm 6.25GHz spacing"; } enum "194.76250" { value 579; description "194.76250 THz/1539.27 nm 6.25/12.5GHz spacing"; } enum "194.76875" { value 580; description "194.76875 THz/1539.22 nm 6.25GHz spacing"; } enum "194.77500" { value 581; description "194.77500 THz/1539.17 nm 6.25/12.5GHz spacing"; } enum "194.78125" { value 582; description "194.78125 THz/1539.12 nm 6.25GHz spacing"; } enum "194.78750" { value 583; description "194.78750 THz/1539.07 nm 6.25/12.5GHz spacing"; } enum "194.79375" { value 584; description "194.79375 THz/1539.03 nm 6.25GHz spacing"; } enum "194.80000" { value 585; description "194.80000 THz/1538.98 nm 6.25/12.5/50/100GHz spacing"; } enum "194.80625" { value 586; description "194.80625 THz/1538.93 nm 6.25GHz spacing"; } enum "194.81250" { value 587; description "194.81250 THz/1538.88 nm 6.25/12.5GHz spacing"; } enum "194.81875" { value 588; description "194.81875 THz/1538.83 nm 6.25GHz spacing"; } enum "194.82500" { value 589; description "194.82500 THz/1538.78 nm 6.25/12.5/75GHz spacing"; } enum "194.83125" { value 590; description "194.83125 THz/1538.73 nm 6.25GHz spacing"; } enum "194.83750" { value 591; description "194.83750 THz/1538.68 nm 6.25/12.5GHz spacing"; } enum "194.84375" { value 592; description "194.84375 THz/1538.63 nm 6.25GHz spacing"; } enum "194.85000" { value 593; description "194.85000 THz/1538.58 nm 6.25/12.5/50GHz spacing"; } enum "194.85625" { value 594; description "194.85625 THz/1538.53 nm 6.25GHz spacing"; } enum "194.86250" { value 595; description "194.86250 THz/1538.48 nm 6.25/12.5GHz spacing"; } enum "194.86875" { value 596; description "194.86875 THz/1538.43 nm 6.25GHz spacing"; } enum "194.87500" { value 597; description "194.87500 THz/1538.38 nm 6.25/12.5GHz spacing"; } enum "194.88125" { value 598; description "194.88125 THz/1538.33 nm 6.25GHz spacing"; } enum "194.88750" { value 599; description "194.88750 THz/1538.28 nm 6.25/12.5GHz spacing"; } enum "194.89375" { value 600; description "194.89375 THz/1538.24 nm 6.25GHz spacing"; } enum "194.90000" { value 601; description "194.90000 THz/1538.19 nm 6.25/12.5/50/75/100GHz spacing"; } enum "194.90625" { value 602; description "194.90625 THz/1538.14 nm 6.25GHz spacing"; } enum "194.91250" { value 603; description "194.91250 THz/1538.09 nm 6.25/12.5GHz spacing"; } enum "194.91875" { value 604; description "194.91875 THz/1538.04 nm 6.25GHz spacing"; } enum "194.92500" { value 605; description "194.92500 THz/1537.99 nm 6.25/12.5GHz spacing"; } enum "194.93125" { value 606; description "194.93125 THz/1537.94 nm 6.25GHz spacing"; } enum "194.93750" { value 607; description "194.93750 THz/1537.89 nm 6.25/12.5GHz spacing"; } enum "194.94375" { value 608; description "194.94375 THz/1537.84 nm 6.25GHz spacing"; } enum "194.95000" { value 609; description "194.95000 THz/1537.79 nm 6.25/12.5/50GHz spacing"; } enum "194.95625" { value 610; description "194.95625 THz/1537.74 nm 6.25GHz spacing"; } enum "194.96250" { value 611; description "194.96250 THz/1537.69 nm 6.25/12.5GHz spacing"; } enum "194.96875" { value 612; description "194.96875 THz/1537.64 nm 6.25GHz spacing"; } enum "194.97500" { value 613; description "194.97500 THz/1537.59 nm 6.25/12.5/75GHz spacing"; } enum "194.98125" { value 614; description "194.98125 THz/1537.55 nm 6.25GHz spacing"; } enum "194.98750" { value 615; description "194.98750 THz/1537.50 nm 6.25/12.5GHz spacing"; } enum "194.99375" { value 616; description "194.99375 THz/1537.45 nm 6.25GHz spacing"; } enum "195.00000" { value 617; description "195.00000 THz/1537.40 nm 6.25/12.5/50/100GHz spacing"; } enum "195.00625" { value 618; description "195.00625 THz/1537.35 nm 6.25GHz spacing"; } enum "195.01250" { value 619; description "195.01250 THz/1537.30 nm 6.25/12.5GHz spacing"; } enum "195.01875" { value 620; description "195.01875 THz/1537.25 nm 6.25GHz spacing"; } enum "195.02500" { value 621; description "195.02500 THz/1537.20 nm 6.25/12.5GHz spacing"; } enum "195.03125" { value 622; description "195.03125 THz/1537.15 nm 6.25GHz spacing"; } enum "195.03750" { value 623; description "195.03750 THz/1537.10 nm 6.25/12.5GHz spacing"; } enum "195.04375" { value 624; description "195.04375 THz/1537.05 nm 6.25GHz spacing"; } enum "195.05000" { value 625; description "195.05000 THz/1537.00 nm 6.25/12.5/50/75GHz spacing"; } enum "195.05625" { value 626; description "195.05625 THz/1536.95 nm 6.25GHz spacing"; } enum "195.06250" { value 627; description "195.06250 THz/1536.90 nm 6.25/12.5GHz spacing"; } enum "195.06875" { value 628; description "195.06875 THz/1536.86 nm 6.25GHz spacing"; } enum "195.07500" { value 629; description "195.07500 THz/1536.81 nm 6.25/12.5GHz spacing"; } enum "195.08125" { value 630; description "195.08125 THz/1536.76 nm 6.25GHz spacing"; } enum "195.08750" { value 631; description "195.08750 THz/1536.71 nm 6.25/12.5GHz spacing"; } enum "195.09375" { value 632; description "195.09375 THz/1536.66 nm 6.25GHz spacing"; } enum "195.10000" { value 633; description "195.10000 THz/1536.61 nm 6.25/12.5/50/100GHz spacing"; } enum "195.10625" { value 634; description "195.10625 THz/1536.56 nm 6.25GHz spacing"; } enum "195.11250" { value 635; description "195.11250 THz/1536.51 nm 6.25/12.5GHz spacing"; } enum "195.11875" { value 636; description "195.11875 THz/1536.46 nm 6.25GHz spacing"; } enum "195.12500" { value 637; description "195.12500 THz/1536.41 nm 6.25/12.5/75GHz spacing"; } enum "195.13125" { value 638; description "195.13125 THz/1536.36 nm 6.25GHz spacing"; } enum "195.13750" { value 639; description "195.13750 THz/1536.31 nm 6.25/12.5GHz spacing"; } enum "195.14375" { value 640; description "195.14375 THz/1536.26 nm 6.25GHz spacing"; } enum "195.15000" { value 641; description "195.15000 THz/1536.22 nm 6.25/12.5/50GHz spacing"; } enum "195.15625" { value 642; description "195.15625 THz/1536.17 nm 6.25GHz spacing"; } enum "195.16250" { value 643; description "195.16250 THz/1536.12 nm 6.25/12.5GHz spacing"; } enum "195.16875" { value 644; description "195.16875 THz/1536.07 nm 6.25GHz spacing"; } enum "195.17500" { value 645; description "195.17500 THz/1536.02 nm 6.25/12.5GHz spacing"; } enum "195.18125" { value 646; description "195.18125 THz/1535.97 nm 6.25GHz spacing"; } enum "195.18750" { value 647; description "195.18750 THz/1535.92 nm 6.25/12.5GHz spacing"; } enum "195.19375" { value 648; description "195.19375 THz/1535.87 nm 6.25GHz spacing"; } enum "195.20000" { value 649; description "195.20000 THz/1535.82 nm 6.25/12.5/50/75/100GHz spacing"; } enum "195.20625" { value 650; description "195.20625 THz/1535.77 nm 6.25GHz spacing"; } enum "195.21250" { value 651; description "195.21250 THz/1535.72 nm 6.25/12.5GHz spacing"; } enum "195.21875" { value 652; description "195.21875 THz/1535.67 nm 6.25GHz spacing"; } enum "195.22500" { value 653; description "195.22500 THz/1535.63 nm 6.25/12.5GHz spacing"; } enum "195.23125" { value 654; description "195.23125 THz/1535.58 nm 6.25GHz spacing"; } enum "195.23750" { value 655; description "195.23750 THz/1535.53 nm 6.25/12.5GHz spacing"; } enum "195.24375" { value 656; description "195.24375 THz/1535.48 nm 6.25GHz spacing"; } enum "195.25000" { value 657; description "195.25000 THz/1535.43 nm 6.25/12.5/50GHz spacing"; } enum "195.25625" { value 658; description "195.25625 THz/1535.38 nm 6.25GHz spacing"; } enum "195.26250" { value 659; description "195.26250 THz/1535.33 nm 6.25/12.5GHz spacing"; } enum "195.26875" { value 660; description "195.26875 THz/1535.28 nm 6.25GHz spacing"; } enum "195.27500" { value 661; description "195.27500 THz/1535.23 nm 6.25/12.5/75GHz spacing"; } enum "195.28125" { value 662; description "195.28125 THz/1535.18 nm 6.25GHz spacing"; } enum "195.28750" { value 663; description "195.28750 THz/1535.13 nm 6.25/12.5GHz spacing"; } enum "195.29375" { value 664; description "195.29375 THz/1535.08 nm 6.25GHz spacing"; } enum "195.30000" { value 665; description "195.30000 THz/1535.04 nm 6.25/12.5/50/100GHz spacing"; } enum "195.30625" { value 666; description "195.30625 THz/1534.99 nm 6.25GHz spacing"; } enum "195.31250" { value 667; description "195.31250 THz/1534.94 nm 6.25/12.5GHz spacing"; } enum "195.31875" { value 668; description "195.31875 THz/1534.89 nm 6.25GHz spacing"; } enum "195.32500" { value 669; description "195.32500 THz/1534.84 nm 6.25/12.5GHz spacing"; } enum "195.33125" { value 670; description "195.33125 THz/1534.79 nm 6.25GHz spacing"; } enum "195.33750" { value 671; description "195.33750 THz/1534.74 nm 6.25/12.5GHz spacing"; } enum "195.34375" { value 672; description "195.34375 THz/1534.69 nm 6.25GHz spacing"; } enum "195.35000" { value 673; description "195.35000 THz/1534.64 nm 6.25/12.5/50/75GHz spacing"; } enum "195.35625" { value 674; description "195.35625 THz/1534.59 nm 6.25GHz spacing"; } enum "195.36250" { value 675; description "195.36250 THz/1534.54 nm 6.25/12.5GHz spacing"; } enum "195.36875" { value 676; description "195.36875 THz/1534.50 nm 6.25GHz spacing"; } enum "195.37500" { value 677; description "195.37500 THz/1534.45 nm 6.25/12.5GHz spacing"; } enum "195.38125" { value 678; description "195.38125 THz/1534.40 nm 6.25GHz spacing"; } enum "195.38750" { value 679; description "195.38750 THz/1534.35 nm 6.25/12.5GHz spacing"; } enum "195.39375" { value 680; description "195.39375 THz/1534.30 nm 6.25GHz spacing"; } enum "195.40000" { value 681; description "195.40000 THz/1534.25 nm 6.25/12.5/50/100GHz spacing"; } enum "195.40625" { value 682; description "195.40625 THz/1534.20 nm 6.25GHz spacing"; } enum "195.41250" { value 683; description "195.41250 THz/1534.15 nm 6.25/12.5GHz spacing"; } enum "195.41875" { value 684; description "195.41875 THz/1534.10 nm 6.25GHz spacing"; } enum "195.42500" { value 685; description "195.42500 THz/1534.05 nm 6.25/12.5/75GHz spacing"; } enum "195.43125" { value 686; description "195.43125 THz/1534.00 nm 6.25GHz spacing"; } enum "195.43750" { value 687; description "195.43750 THz/1533.96 nm 6.25/12.5GHz spacing"; } enum "195.44375" { value 688; description "195.44375 THz/1533.91 nm 6.25GHz spacing"; } enum "195.45000" { value 689; description "195.45000 THz/1533.86 nm 6.25/12.5/50GHz spacing"; } enum "195.45625" { value 690; description "195.45625 THz/1533.81 nm 6.25GHz spacing"; } enum "195.46250" { value 691; description "195.46250 THz/1533.76 nm 6.25/12.5GHz spacing"; } enum "195.46875" { value 692; description "195.46875 THz/1533.71 nm 6.25GHz spacing"; } enum "195.47500" { value 693; description "195.47500 THz/1533.66 nm 6.25/12.5GHz spacing"; } enum "195.48125" { value 694; description "195.48125 THz/1533.61 nm 6.25GHz spacing"; } enum "195.48750" { value 695; description "195.48750 THz/1533.56 nm 6.25/12.5GHz spacing"; } enum "195.49375" { value 696; description "195.49375 THz/1533.51 nm 6.25GHz spacing"; } enum "195.50000" { value 697; description "195.50000 THz/1533.47 nm 6.25/12.5/50/75/100GHz spacing"; } enum "195.50625" { value 698; description "195.50625 THz/1533.42 nm 6.25GHz spacing"; } enum "195.51250" { value 699; description "195.51250 THz/1533.37 nm 6.25/12.5GHz spacing"; } enum "195.51875" { value 700; description "195.51875 THz/1533.32 nm 6.25GHz spacing"; } enum "195.52500" { value 701; description "195.52500 THz/1533.27 nm 6.25/12.5GHz spacing"; } enum "195.53125" { value 702; description "195.53125 THz/1533.22 nm 6.25GHz spacing"; } enum "195.53750" { value 703; description "195.53750 THz/1533.17 nm 6.25/12.5GHz spacing"; } enum "195.54375" { value 704; description "195.54375 THz/1533.12 nm 6.25GHz spacing"; } enum "195.55000" { value 705; description "195.55000 THz/1533.07 nm 6.25/12.5/50GHz spacing"; } enum "195.55625" { value 706; description "195.55625 THz/1533.02 nm 6.25GHz spacing"; } enum "195.56250" { value 707; description "195.56250 THz/1532.98 nm 6.25/12.5GHz spacing"; } enum "195.56875" { value 708; description "195.56875 THz/1532.93 nm 6.25GHz spacing"; } enum "195.57500" { value 709; description "195.57500 THz/1532.88 nm 6.25/12.5/75GHz spacing"; } enum "195.58125" { value 710; description "195.58125 THz/1532.83 nm 6.25GHz spacing"; } enum "195.58750" { value 711; description "195.58750 THz/1532.78 nm 6.25/12.5GHz spacing"; } enum "195.59375" { value 712; description "195.59375 THz/1532.73 nm 6.25GHz spacing"; } enum "195.60000" { value 713; description "195.60000 THz/1532.68 nm 6.25/12.5/50/100GHz spacing"; } enum "195.60625" { value 714; description "195.60625 THz/1532.63 nm 6.25GHz spacing"; } enum "195.61250" { value 715; description "195.61250 THz/1532.58 nm 6.25/12.5GHz spacing"; } enum "195.61875" { value 716; description "195.61875 THz/1532.53 nm 6.25GHz spacing"; } enum "195.62500" { value 717; description "195.62500 THz/1532.49 nm 6.25/12.5GHz spacing"; } enum "195.63125" { value 718; description "195.63125 THz/1532.44 nm 6.25GHz spacing"; } enum "195.63750" { value 719; description "195.63750 THz/1532.39 nm 6.25/12.5GHz spacing"; } enum "195.64375" { value 720; description "195.64375 THz/1532.34 nm 6.25GHz spacing"; } enum "195.65000" { value 721; description "195.65000 THz/1532.29 nm 6.25/12.5/50/75GHz spacing"; } enum "195.65625" { value 722; description "195.65625 THz/1532.24 nm 6.25GHz spacing"; } enum "195.66250" { value 723; description "195.66250 THz/1532.19 nm 6.25/12.5GHz spacing"; } enum "195.66875" { value 724; description "195.66875 THz/1532.14 nm 6.25GHz spacing"; } enum "195.67500" { value 725; description "195.67500 THz/1532.09 nm 6.25/12.5GHz spacing"; } enum "195.68125" { value 726; description "195.68125 THz/1532.04 nm 6.25GHz spacing"; } enum "195.68750" { value 727; description "195.68750 THz/1532.00 nm 6.25/12.5GHz spacing"; } enum "195.69375" { value 728; description "195.69375 THz/1531.95 nm 6.25GHz spacing"; } enum "195.70000" { value 729; description "195.70000 THz/1531.90 nm 6.25/12.5/50/100GHz spacing"; } enum "195.70625" { value 730; description "195.70625 THz/1531.85 nm 6.25GHz spacing"; } enum "195.71250" { value 731; description "195.71250 THz/1531.80 nm 6.25/12.5GHz spacing"; } enum "195.71875" { value 732; description "195.71875 THz/1531.75 nm 6.25GHz spacing"; } enum "195.72500" { value 733; description "195.72500 THz/1531.70 nm 6.25/12.5/75GHz spacing"; } enum "195.73125" { value 734; description "195.73125 THz/1531.65 nm 6.25GHz spacing"; } enum "195.73750" { value 735; description "195.73750 THz/1531.60 nm 6.25/12.5GHz spacing"; } enum "195.74375" { value 736; description "195.74375 THz/1531.56 nm 6.25GHz spacing"; } enum "195.75000" { value 737; description "195.75000 THz/1531.51 nm 6.25/12.5/50GHz spacing"; } enum "195.75625" { value 738; description "195.75625 THz/1531.46 nm 6.25GHz spacing"; } enum "195.76250" { value 739; description "195.76250 THz/1531.41 nm 6.25/12.5GHz spacing"; } enum "195.76875" { value 740; description "195.76875 THz/1531.36 nm 6.25GHz spacing"; } enum "195.77500" { value 741; description "195.77500 THz/1531.31 nm 6.25/12.5GHz spacing"; } enum "195.78125" { value 742; description "195.78125 THz/1531.26 nm 6.25GHz spacing"; } enum "195.78750" { value 743; description "195.78750 THz/1531.21 nm 6.25/12.5GHz spacing"; } enum "195.79375" { value 744; description "195.79375 THz/1531.16 nm 6.25GHz spacing"; } enum "195.80000" { value 745; description "195.80000 THz/1531.12 nm 6.25/12.5/50/75/100GHz spacing"; } enum "195.80625" { value 746; description "195.80625 THz/1531.07 nm 6.25GHz spacing"; } enum "195.81250" { value 747; description "195.81250 THz/1531.02 nm 6.25/12.5GHz spacing"; } enum "195.81875" { value 748; description "195.81875 THz/1530.97 nm 6.25GHz spacing"; } enum "195.82500" { value 749; description "195.82500 THz/1530.92 nm 6.25/12.5GHz spacing"; } enum "195.83125" { value 750; description "195.83125 THz/1530.87 nm 6.25GHz spacing"; } enum "195.83750" { value 751; description "195.83750 THz/1530.82 nm 6.25/12.5GHz spacing"; } enum "195.84375" { value 752; description "195.84375 THz/1530.77 nm 6.25GHz spacing"; } enum "195.85000" { value 753; description "195.85000 THz/1530.72 nm 6.25/12.5/50GHz spacing"; } enum "195.85625" { value 754; description "195.85625 THz/1530.68 nm 6.25GHz spacing"; } enum "195.86250" { value 755; description "195.86250 THz/1530.63 nm 6.25/12.5GHz spacing"; } enum "195.86875" { value 756; description "195.86875 THz/1530.58 nm 6.25GHz spacing"; } enum "195.87500" { value 757; description "195.87500 THz/1530.53 nm 6.25/12.5/75GHz spacing"; } enum "195.88125" { value 758; description "195.88125 THz/1530.48 nm 6.25GHz spacing"; } enum "195.88750" { value 759; description "195.88750 THz/1530.43 nm 6.25/12.5GHz spacing"; } enum "195.89375" { value 760; description "195.89375 THz/1530.38 nm 6.25GHz spacing"; } enum "195.90000" { value 761; description "195.90000 THz/1530.33 nm 6.25/12.5/50/100GHz spacing"; } enum "195.90625" { value 762; description "195.90625 THz/1530.29 nm 6.25GHz spacing"; } enum "195.91250" { value 763; description "195.91250 THz/1530.24 nm 6.25/12.5GHz spacing"; } enum "195.91875" { value 764; description "195.91875 THz/1530.19 nm 6.25GHz spacing"; } enum "195.92500" { value 765; description "195.92500 THz/1530.14 nm 6.25/12.5GHz spacing"; } enum "195.93125" { value 766; description "195.93125 THz/1530.09 nm 6.25GHz spacing"; } enum "195.93750" { value 767; description "195.93750 THz/1530.04 nm 6.25/12.5GHz spacing"; } enum "195.94375" { value 768; description "195.94375 THz/1529.99 nm 6.25GHz spacing"; } enum "195.95000" { value 769; description "195.95000 THz/1529.94 nm 6.25/12.5/50/75GHz spacing"; } enum "195.95625" { value 770; description "195.95625 THz/1529.89 nm 6.25GHz spacing"; } enum "195.96250" { value 771; description "195.96250 THz/1529.85 nm 6.25/12.5GHz spacing"; } enum "195.96875" { value 772; description "195.96875 THz/1529.80 nm 6.25GHz spacing"; } enum "195.97500" { value 773; description "195.97500 THz/1529.75 nm 6.25/12.5GHz spacing"; } enum "195.98125" { value 774; description "195.98125 THz/1529.70 nm 6.25GHz spacing"; } enum "195.98750" { value 775; description "195.98750 THz/1529.65 nm 6.25/12.5GHz spacing"; } enum "195.99375" { value 776; description "195.99375 THz/1529.60 nm 6.25GHz spacing"; } enum "196.00000" { value 777; description "196.00000 THz/1529.55 nm 6.25/12.5/50/100GHz spacing"; } enum "196.00625" { value 778; description "196.00625 THz/1529.50 nm 6.25GHz spacing"; } enum "196.01250" { value 779; description "196.01250 THz/1529.46 nm 6.25/12.5GHz spacing"; } enum "196.01875" { value 780; description "196.01875 THz/1529.41 nm 6.25GHz spacing"; } enum "196.02500" { value 781; description "196.02500 THz/1529.36 nm 6.25/12.5/75GHz spacing"; } enum "196.03125" { value 782; description "196.03125 THz/1529.31 nm 6.25GHz spacing"; } enum "196.03750" { value 783; description "196.03750 THz/1529.26 nm 6.25/12.5GHz spacing"; } enum "196.04375" { value 784; description "196.04375 THz/1529.21 nm 6.25GHz spacing"; } enum "196.05000" { value 785; description "196.05000 THz/1529.16 nm 6.25/12.5/50GHz spacing"; } enum "196.05625" { value 786; description "196.05625 THz/1529.11 nm 6.25GHz spacing"; } enum "196.06250" { value 787; description "196.06250 THz/1529.07 nm 6.25/12.5GHz spacing"; } enum "196.06875" { value 788; description "196.06875 THz/1529.02 nm 6.25GHz spacing"; } enum "196.07500" { value 789; description "196.07500 THz/1528.97 nm 6.25/12.5GHz spacing"; } enum "196.08125" { value 790; description "196.08125 THz/1528.92 nm 6.25GHz spacing"; } enum "196.08750" { value 791; description "196.08750 THz/1528.87 nm 6.25/12.5GHz spacing"; } enum "196.09375" { value 792; description "196.09375 THz/1528.82 nm 6.25GHz spacing"; } enum "196.10000" { value 793; description "196.10000 THz/1528.77 nm 6.25/12.5/50/75/100GHz spacing"; } enum "196.15040" { value 794; description "196.15040 THz/1528.38 nm 50Ghz spacing"; } } description "Optical channel frequency in terahertz"; } } // choice channel-number leaf tx-power { type string { junos:posix-pattern "^([+-]?[1-9]?[0-9](.[0-9][0-9]?)?)$"; junos:pattern-message "Signed value with up to 2 decimal places"; } units "dBm"; description "Transmit laser output power"; } choice laser-enable-choice { leaf laser-enable { type empty; description "Enable transmit laser"; } leaf no-laser-enable { type empty; description "Don't enable transmit laser"; } } // choice laser-enable-choice } // grouping och-attributes grouping odu-attributes { description "Optical Data Unit configuration attributes"; uses apply-advanced; leaf rate { type enumeration { enum "odu4" { value 0; description "ODU4 for 100 Gbps"; } } description "Specific type of ODU, according to data rate"; } choice is-ma-choice { leaf is-ma { type empty; description "Link is enabled for maintenance tasks, alarms are masked"; } leaf no-is-ma { type empty; description "Don't link is enabled for maintenance tasks, alarms are masked"; } } // choice is-ma-choice container tti { presence "enable tti"; description "Configuration of OTU trail trace identifier"; uses otn-tti-attributes; } // container tti container degrade { presence "enable degrade"; description "Configuration of OTU degrade defect detection"; uses otn-degrade; } // container degrade leaf exp-payload-type { type union { type uint8; type string { pattern "<.*>|$.*"; } } description "Expected OPU payload type"; } container prbs { presence "enable prbs"; description "Configuration of framed pseudorandom binary sequence test signal"; uses prbs-config; } // container prbs } // grouping odu-attributes grouping otn-degrade { description "Configuration of degrade defect detection"; uses apply-advanced; leaf degm { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "2 .. 10"; } } description "Number of consecutive intervals error rate above threshold"; } leaf degthr { type string { junos:posix-pattern "^((100(.00?)?)|(([1-9])?[0-9](.[0-9][0-9]?)?))$"; junos:pattern-message "Percentage value up to 2 decimal places"; } description "Threshold - percentage errored blocks, ex. 1.23 = 1.23%"; } } // grouping otn-degrade grouping otn-tti-attributes { description "Configuration of OTN trail trace identifier"; uses apply-advanced; leaf sapi { type string { length "0 .. 15"; } description "Transmitted source access point identifier field"; } leaf dapi { type string { length "0 .. 15"; } description "Transmitted destination access point identifier field"; } leaf operator { type string { length "0 .. 32"; } description "Transmitted operator field"; } leaf exp-sapi { type string { length "0 .. 15"; } description "Expected received source access point identifier field"; } leaf exp-dapi { type string { length "0 .. 15"; } description "Expected received destination access point identifier field"; } leaf tim-detect-mode { type enumeration { enum "disabled" { value 0; description "Detection of trace input mismatch defect disabled"; } enum "sapi-only" { value 1; description "Detection of trace input mismatch defect on SAPI field only"; } enum "dapi-only" { value 2; description "Detection of trace input mismatch defect on DAPI field only"; } enum "sapi-and-dapi" { value 3; description "Detection of trace input mismatch defect on both SAPI and DAPI fields"; } } description "Trace input mismatch defect detection mode"; } choice tim-act-enable-choice { leaf tim-act-enable { type empty; description "Enable trace input mismatch consequential actions"; } leaf no-tim-act-enable { type empty; description "Don't enable trace input mismatch consequential actions"; } } // choice tim-act-enable-choice } // grouping otn-tti-attributes grouping otn_options_type { uses apply-advanced; choice laser-enable-choice { leaf laser-enable { type empty; description "Enable Laser"; } leaf no-laser-enable { type empty; description "Don't enable Laser"; } } // choice laser-enable-choice choice is-ma-choice { leaf is-ma { type empty; description "Link is enabled with alarms masked"; } leaf no-is-ma { type empty; description "Don't link is enabled with alarms masked"; } } // choice is-ma-choice choice line-loopback-choice { leaf line-loopback { type empty; description "Enable line loopback"; } leaf no-line-loopback { type empty; description "Don't enable line loopback"; } } // choice line-loopback-choice choice local-loopback-choice { leaf local-loopback { type empty; description "Enable local host loopback"; } leaf no-local-loopback { type empty; description "Don't enable local host loopback"; } } // choice local-loopback-choice choice prbs-choice { leaf prbs { type empty; description "Enable otn payload prbs"; } leaf no-prbs { type empty; description "Don't enable otn payload prbs"; } } // choice prbs-choice choice odu-ttim-action-enable-choice { leaf odu-ttim-action-enable { type empty; description "Enable consequent action for ODU TTIM"; } leaf no-odu-ttim-action-enable { type empty; description "Don't enable consequent action for ODU TTIM"; } } // choice odu-ttim-action-enable-choice choice otu-ttim-action-enable-choice { leaf otu-ttim-action-enable { type empty; description "Enable consequent action for OTU TTIM"; } leaf no-otu-ttim-action-enable { type empty; description "Don't enable consequent action for OTU TTIM"; } } // choice otu-ttim-action-enable-choice choice transport-monitoring-choice { leaf transport-monitoring { type empty; description "Enable transport monitoring"; } leaf no-transport-monitoring { type empty; description "Don't enable transport monitoring"; } } // choice transport-monitoring-choice container odu-delay-management { description "Set odu delay management"; uses apply-advanced; choice monitor-end-point-choice { leaf monitor-end-point { type empty; description "Originate connection monitor end point"; } leaf no-monitor-end-point { type empty; description "Don't originate connection monitor end point"; } } // choice monitor-end-point-choice choice start-measurement-choice { leaf start-measurement { type empty; description "Enable to start a dm measurement"; } leaf no-start-measurement { type empty; description "Don't enable to start a dm measurement"; } } // choice start-measurement-choice choice bypass-choice { leaf bypass { type empty; description "Act as tandem passing dm value through node"; } leaf no-bypass { type empty; description "Don't act as tandem passing dm value through node"; } } // choice bypass-choice leaf number-of-frames { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Number of consequent frames to declare dm done"; } choice remote-loop-enable-choice { leaf remote-loop-enable { type empty; description "Enable remote DM loop on remote end"; } leaf no-remote-loop-enable { type empty; description "Don't enable remote DM loop on remote end"; } } // choice remote-loop-enable-choice } // container odu-delay-management container signal-degrade { description "Signal degrade thresholds"; uses apply-advanced; leaf interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 1000"; } } units "milliseconds"; default "10"; description "Time interval"; } leaf ber-threshold-clear { type string { junos:posix-pattern "^[0-9]+(.[0-9]+)?e-[0-9]$"; junos:pattern-message "Ber threshold value in format: xe-n, x is an integer or decimal number, n = 0..9"; } description "Ber threshold for signal degrade clear (format: xe-n, example: 4.5e-3)"; } leaf ber-threshold-signal-degrade { type string { junos:posix-pattern "^[0-9]+(.[0-9]+)?e-[0-9]$"; junos:pattern-message "Ber threshold value in format: xe-n, x is an integer or decimal number, n = 0..9"; } description "Ber threshold for signal-degrade (format: xe-n, example: 4.5e-3)"; } leaf q-threshold-signal-degrade-clear { type string; units "dB"; description "Q threshold for signal-degrade clear (e.g. 14.26)"; } leaf q-threshold-signal-degrade { type string; units "dB"; description "Q threshold for signal-degrade (e.g. 9.26)"; } } // container signal-degrade container odu-signal-degrade { description "Signal degrade thresholds for ODU"; uses apply-advanced; leaf interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 1000"; } } units "milliseconds"; default "10"; description "Time interval"; } leaf ber-threshold-clear { type string { junos:posix-pattern "^[0-9]+(.[0-9]+)?e-[0-9]$"; junos:pattern-message "Ber threshold value in format: xe-n, x is an integer or decimal number, n = 0..9"; } default "1.0e-9"; description "Ber th for sd clear (format: xe-n, example: 4.5e-3)"; } leaf ber-threshold-signal-degrade { type string { junos:posix-pattern "^[0-9]+(.[0-9]+)?e-[0-9]$"; junos:pattern-message "Ber threshold value in format: xe-n, x is an integer or decimal number, n = 0..9"; } default "1.0e-6"; description "Ber th for sd (format: xe-n, example: 4.5e-3)"; } } // container odu-signal-degrade container preemptive-fast-reroute { description "Preemptive fast reroute"; uses apply-advanced; choice odu-signal-degrade-monitor-enable-choice { leaf odu-signal-degrade-monitor-enable { type empty; description "Enable ODU signal degrade monitoring"; } leaf no-odu-signal-degrade-monitor-enable { type empty; description "Don't enable ODU signal degrade monitoring"; } } // choice odu-signal-degrade-monitor-enable-choice choice odu-backward-frr-enable-choice { leaf odu-backward-frr-enable { type empty; description "Enable ODU backward frr insertion"; } leaf no-odu-backward-frr-enable { type empty; description "Don't enable ODU backward frr insertion"; } } // choice odu-backward-frr-enable-choice choice signal-degrade-monitor-enable-choice { leaf signal-degrade-monitor-enable { type empty; description "Enable signal degrade monitoring"; } leaf no-signal-degrade-monitor-enable { type empty; description "Don't enable signal degrade monitoring"; } } // choice signal-degrade-monitor-enable-choice choice backward-frr-enable-choice { leaf backward-frr-enable { type empty; description "Enable backward frr insertion"; } leaf no-backward-frr-enable { type empty; description "Don't enable backward frr insertion"; } } // choice backward-frr-enable-choice } // container preemptive-fast-reroute leaf fec { type enumeration { enum "none" { value 0; description "GFEC all 0's"; } enum "gfec" { value 1; description "GFEC-Generic Forward Error Correction"; } enum "efec" { value 2; description "EFEC-Enhanced Forward Error Correction"; } enum "gfec-sdfec" { value 3; description "Both gfec and sdfec"; } enum "ufec" { value 4; description "UFEC-Ultra Forward Error Correction"; } enum "sdfec" { value 5; description "SDFEC-Soft Decision Forward Error Correction"; } enum "hgfec" { value 6; description "HGFEC-High Gain Forward Error Correction"; } enum "sdfec15" { value 7; description "SDFEC with 15 percent overhead - non-differential"; } } description "Forward Error Correction mode"; } choice insert-odu-oci-choice { leaf insert-odu-oci { type empty; description "Force odu open connection indication"; } leaf no-insert-odu-oci { type empty; description "Don't force odu open connection indication"; } } // choice insert-odu-oci-choice choice insert-odu-lck-choice { leaf insert-odu-lck { type empty; description "Force odu locked maintenance signal"; } leaf no-insert-odu-lck { type empty; description "Don't force odu locked maintenance signal"; } } // choice insert-odu-lck-choice leaf rate { type enumeration { enum "pass-thru" { value 0; description "Pass through mode - No OTN framing"; } enum "fixed-stuff-bytes" { value 1; description "Fixed Stuff Bytes 11.0957Gbps"; } enum "no-fixed-stuff-bytes" { value 2; description "No Fixed Stuff Bytes 11.0491Gbps"; } enum "oc192" { value 3; description "OTU2 for OC192 10.7Gbps"; } enum "otu3" { value 4; description "OTU3 for 40Gbps"; } enum "otu4" { value 5; description "OTU4/OTU4v for 100Gbps-127Gbps"; } } description "Optical Transmission Network mode"; } container bytes { description "Set OTN header bytes"; uses apply-advanced; leaf transmit-payload-type { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Transmit payload type"; } } // container bytes container tti { description "Trace Identifier"; uses apply-advanced; leaf otu-dapi { type string; description "OTU Destination Access Point Identifier"; } leaf otu-sapi { type string; description "OTU Source Access Point Identifier"; } leaf otu-expected-receive-dapi { type string; description "OTU Expected Receive Destination Access Point Identifier"; } leaf otu-expected-receive-sapi { type string; description "OTU Expected Receive Source Access Point Identifier"; } leaf odu-dapi { type string; description "ODU Destination Access Point Identifier"; } leaf odu-sapi { type string; description "ODU Source Access Point Identifier"; } leaf odu-expected-receive-dapi { type string; description "ODU Expected Receive Destination Access Point Identifier"; } leaf odu-expected-receive-sapi { type string; description "ODU Expected Receive Source Access Point Identifier"; } choice otu-dapi-first-byte-nul-choice { leaf otu-dapi-first-byte-nul { type empty; description "Insert all-0s to first byte"; } leaf no-otu-dapi-first-byte-nul { type empty; description "Don't insert all-0s to first byte"; } } // choice otu-dapi-first-byte-nul-choice choice otu-sapi-first-byte-nul-choice { leaf otu-sapi-first-byte-nul { type empty; description "Insert all-0s to first byte"; } leaf no-otu-sapi-first-byte-nul { type empty; description "Don't insert all-0s to first byte"; } } // choice otu-sapi-first-byte-nul-choice choice otu-expected-receive-dapi-first-byte-nul-choice { leaf otu-expected-receive-dapi-first-byte-nul { type empty; description "Insert all-0s to first byte"; } leaf no-otu-expected-receive-dapi-first-byte-nul { type empty; description "Don't insert all-0s to first byte"; } } // choice otu-expected-receive-dapi-first-byte-nul-choice choice otu-expected-receive-sapi-first-byte-nul-choice { leaf otu-expected-receive-sapi-first-byte-nul { type empty; description "Insert all-0s to first byte"; } leaf no-otu-expected-receive-sapi-first-byte-nul { type empty; description "Don't insert all-0s to first byte"; } } // choice otu-expected-receive-sapi-first-byte-nul-choice choice odu-dapi-first-byte-nul-choice { leaf odu-dapi-first-byte-nul { type empty; description "Insert all-0s to first byte"; } leaf no-odu-dapi-first-byte-nul { type empty; description "Don't insert all-0s to first byte"; } } // choice odu-dapi-first-byte-nul-choice choice odu-sapi-first-byte-nul-choice { leaf odu-sapi-first-byte-nul { type empty; description "Insert all-0s to first byte"; } leaf no-odu-sapi-first-byte-nul { type empty; description "Don't insert all-0s to first byte"; } } // choice odu-sapi-first-byte-nul-choice choice odu-expected-receive-dapi-first-byte-nul-choice { leaf odu-expected-receive-dapi-first-byte-nul { type empty; description "Insert all-0s to first byte"; } leaf no-odu-expected-receive-dapi-first-byte-nul { type empty; description "Don't insert all-0s to first byte"; } } // choice odu-expected-receive-dapi-first-byte-nul-choice choice odu-expected-receive-sapi-first-byte-nul-choice { leaf odu-expected-receive-sapi-first-byte-nul { type empty; description "Insert all-0s to first byte"; } leaf no-odu-expected-receive-sapi-first-byte-nul { type empty; description "Don't insert all-0s to first byte"; } } // choice odu-expected-receive-sapi-first-byte-nul-choice } // container tti container trigger { description "Defect triggers"; uses apply-advanced; container oc-los { description "OC Loss Of Signal defect trigger"; choice oc_los_choices { leaf ignore { type empty; description "Ignore the defect"; } container hold-time { description "Delay before clearing or raising the alarm for defect"; leaf up { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before clearing the alarm when the defect is absent"; } leaf down { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before raising the alarm when the defect occurs"; } } // container hold-time } // choice oc_los_choices } // container oc-los container oc-lof { description "OC Loss Of Frame defect trigger"; choice oc_lof_choices { leaf ignore { type empty; description "Ignore the defect"; } container hold-time { description "Delay before clearing or raising the alarm for defect"; leaf up { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before clearing the alarm when the defect is absent"; } leaf down { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before raising the alarm when the defect occurs"; } } // container hold-time } // choice oc_lof_choices } // container oc-lof container oc-lom { description "OC Loss Of Multiframe defect trigger"; choice oc_lom_choices { leaf ignore { type empty; description "Ignore the defect"; } container hold-time { description "Delay before clearing or raising the alarm for defect"; leaf up { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before clearing the alarm when the defect is absent"; } leaf down { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before raising the alarm when the defect occurs"; } } // container hold-time } // choice oc_lom_choices } // container oc-lom container oc-wavelength-lock { description "OC Wavelength Lock defect trigger"; choice oc_wavelength_lock_choices { leaf ignore { type empty; description "Ignore the defect"; } container hold-time { description "Delay before clearing or raising the alarm for defect"; leaf up { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before clearing the alarm when the defect is absent"; } leaf down { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before raising the alarm when the defect occurs"; } } // container hold-time } // choice oc_wavelength_lock_choices } // container oc-wavelength-lock container oc-tsf { description "Oc tsf defect trigger"; choice oc-tsf-choices { leaf ignore { type empty; description "Ignore the defect"; } container hold-time { description "Delay before clearing or raising the alarm for defect"; leaf up { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before clearing the alarm when the defect is absent"; } leaf down { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before raising the alarm when the defect occurs"; } } // container hold-time } // choice oc-tsf-choices } // container oc-tsf container otu-ais { description "OTU Alarm Indication Signal defect trigger"; choice otu_ais_choices { leaf ignore { type empty; description "Ignore the defect"; } container hold-time { description "Delay before clearing or raising the alarm for defect"; leaf up { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before clearing the alarm when the defect is absent"; } leaf down { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before raising the alarm when the defect occurs"; } } // container hold-time } // choice otu_ais_choices } // container otu-ais container otu-bdi { description "OTU Backward Defect Indication defect trigger"; choice otu_bdi_choices { leaf ignore { type empty; description "Ignore the defect"; } container hold-time { description "Delay before clearing or raising the alarm for defect"; leaf up { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before clearing the alarm when the defect is absent"; } leaf down { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before raising the alarm when the defect occurs"; } } // container hold-time } // choice otu_bdi_choices } // container otu-bdi container otu-iae { description "OTU Incoming Alignment defect trigger"; choice otu_iae_choices { leaf ignore { type empty; description "Ignore the defect"; } container hold-time { description "Delay before clearing or raising the alarm for defect"; leaf up { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before clearing the alarm when the defect is absent"; } leaf down { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before raising the alarm when the defect occurs"; } } // container hold-time } // choice otu_iae_choices } // container otu-iae container otu-ttim { description "OTU Trail Trace Identifier Mismatch defect trigger"; choice otu_ttim_choices { leaf ignore { type empty; description "Ignore the defect"; } container hold-time { description "Delay before clearing or raising the alarm for defect"; leaf up { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before clearing the alarm when the defect is absent"; } leaf down { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before raising the alarm when the defect occurs"; } } // container hold-time } // choice otu_ttim_choices } // container otu-ttim container otu-sd { description "OTU Signal Degrade defect trigger"; choice otu_sd_choices { leaf ignore { type empty; description "Ignore the defect"; } container hold-time { description "Delay before clearing or raising the alarm for defect"; leaf up { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before clearing the alarm when the defect is absent"; } leaf down { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before raising the alarm when the defect occurs"; } } // container hold-time } // choice otu_sd_choices } // container otu-sd container otu-fec-deg { description "OTU FEC Degrade defect trigger"; choice otu_fec_deg_choices { leaf ignore { type empty; description "Ignore the defect"; } container hold-time { description "Delay before clearing or raising the alarm for defect"; leaf up { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before clearing the alarm when the defect is absent"; } leaf down { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before raising the alarm when the defect occurs"; } } // container hold-time } // choice otu_fec_deg_choices } // container otu-fec-deg container otu-fec-exe { description "OTU FEC Excessive Error defect trigger"; choice otu_fec_exe_choices { leaf ignore { type empty; description "Ignore the defect"; } container hold-time { description "Delay before clearing or raising the alarm for defect"; leaf up { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before clearing the alarm when the defect is absent"; } leaf down { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before raising the alarm when the defect occurs"; } } // container hold-time } // choice otu_fec_exe_choices } // container otu-fec-exe container odu-ais { description "ODU Alarm Indication Signal defect trigger"; choice odu_ais_choices { leaf ignore { type empty; description "Ignore the defect"; } container hold-time { description "Delay before clearing or raising the alarm for defect"; leaf up { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before clearing the alarm when the defect is absent"; } leaf down { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before raising the alarm when the defect occurs"; } } // container hold-time } // choice odu_ais_choices } // container odu-ais container odu-bdi { description "ODU Backward Defect Indication defect trigger"; choice odu_bdi_choices { leaf ignore { type empty; description "Ignore the defect"; } container hold-time { description "Delay before clearing or raising the alarm for defect"; leaf up { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before clearing the alarm when the defect is absent"; } leaf down { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before raising the alarm when the defect occurs"; } } // container hold-time } // choice odu_bdi_choices } // container odu-bdi container odu-iae { description "Odu iae defect trigger"; choice odu-iae-choices { leaf ignore { type empty; description "Ignore the defect"; } container hold-time { description "Delay before clearing or raising the alarm for defect"; leaf up { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before clearing the alarm when the defect is absent"; } leaf down { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before raising the alarm when the defect occurs"; } } // container hold-time } // choice odu-iae-choices } // container odu-iae container odu-bei { description "Odu backward error indication defect trigger"; choice odu_bei_choices { leaf ignore { type empty; description "Ignore the defect"; } container hold-time { description "Delay before clearing or raising the alarm for defect"; leaf up { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before clearing the alarm when the defect is absent"; } leaf down { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before raising the alarm when the defect occurs"; } } // container hold-time } // choice odu_bei_choices } // container odu-bei container odu-oci { description "ODU Open Connection Indication defect trigger"; choice odu_oci_choices { leaf ignore { type empty; description "Ignore the defect"; } container hold-time { description "Delay before clearing or raising the alarm for defect"; leaf up { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before clearing the alarm when the defect is absent"; } leaf down { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before raising the alarm when the defect occurs"; } } // container hold-time } // choice odu_oci_choices } // container odu-oci container odu-lck { description "ODU Locked defect trigger"; choice odu_lck_choices { leaf ignore { type empty; description "Ignore the defect"; } container hold-time { description "Delay before clearing or raising the alarm for defect"; leaf up { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before clearing the alarm when the defect is absent"; } leaf down { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before raising the alarm when the defect occurs"; } } // container hold-time } // choice odu_lck_choices } // container odu-lck container odu-ttim { description "ODU Trail Trace Identifier Mismatch defect trigger"; choice odu_ttim_choices { leaf ignore { type empty; description "Ignore the defect"; } container hold-time { description "Delay before clearing or raising the alarm for defect"; leaf up { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before clearing the alarm when the defect is absent"; } leaf down { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before raising the alarm when the defect occurs"; } } // container hold-time } // choice odu_ttim_choices } // container odu-ttim container odu-sd { description "ODU Signal Degrade defect trigger"; choice odu_sd_choices { leaf ignore { type empty; description "Ignore the defect"; } container hold-time { description "Delay before clearing or raising the alarm for defect"; leaf up { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before clearing the alarm when the defect is absent"; } leaf down { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before raising the alarm when the defect occurs"; } } // container hold-time } // choice odu_sd_choices } // container odu-sd container opu-ptim { description "Payload Type Mismatch defect trigger"; choice opu_ptm_choices { leaf ignore { type empty; description "Ignore the defect"; } container hold-time { description "Delay before clearing or raising the alarm for defect"; leaf up { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before clearing the alarm when the defect is absent"; } leaf down { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before raising the alarm when the defect occurs"; } } // container hold-time } // choice opu_ptm_choices } // container opu-ptim } // container trigger container tca { description "TCA - threshold crossing alerts"; uses apply-advanced; container otu-tca-es { description "OTU Errored Seconds Threshold crossing defect trigger"; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable the OTU errored seconds threshold crossing alert"; } leaf no-enable-tca { type empty; description "Don't enable the OTU errored seconds threshold crossing alert"; } } // choice enable-tca-choice leaf threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 900"; } } default "135"; description "TCA threshold for OTU errored seconds in 15 minutes"; } leaf threshold-24hrs { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 86400"; } } default "162"; description "TCA threshold for OTU errored seconds in 24 hours"; } } // container otu-tca-es container otu-tca-ses { description "OTU Severely Errored Seconds Threshold crossing defect trigger"; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable the OTU severely errored seconds threshold crossing alert"; } leaf no-enable-tca { type empty; description "Don't enable the OTU severely errored seconds threshold crossing alert"; } } // choice enable-tca-choice leaf threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 900"; } } default "90"; description "TCA threshold for OTU severely errored seconds in 15 minutes"; } leaf threshold-24hrs { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 86400"; } } default "108"; description "TCA threshold for OTU severely errored seconds in 24 hours"; } } // container otu-tca-ses container otu-tca-uas { description "OTU Unavailable Seconds Threshold crossing defect trigger"; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable the OTU unavailable seconds threshold crossing alert"; } leaf no-enable-tca { type empty; description "Don't enable the OTU unavailable seconds threshold crossing alert"; } } // choice enable-tca-choice leaf threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "10 .. 900"; } } default "90"; description "TCA threshold for OTU unavailable seconds in 15 minutes"; } leaf threshold-24hrs { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "10 .. 86400"; } } default "108"; description "TCA threshold for OTU unavailable seconds in 24 hours"; } } // container otu-tca-uas container otu-tca-bbe { description "OTU Background Block Error Threshold crossing defect trigger"; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable the OTU BBE threshold crossing alert"; } leaf no-enable-tca { type empty; description "Don't enable the OTU BBE threshold crossing alert"; } } // choice enable-tca-choice leaf threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 771000000"; } } default "800"; description "TCA threshold for OTU BBE in 15 minutes"; } leaf threshold-24hrs { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 771000000"; } } default "960"; description "TCA threshold for OTU BBE in 24 hours"; } } // container otu-tca-bbe container otu-tca-es-fe { description "OTU far-end Errored Seconds Threshold crossing defect trigger"; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable the OTU far-end errored seconds threshold crossing alert"; } leaf no-enable-tca { type empty; description "Don't enable the OTU far-end errored seconds threshold crossing alert"; } } // choice enable-tca-choice leaf threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 900"; } } default "135"; description "TCA threshold for OTU far-end errored seconds in 15 minutes"; } leaf threshold-24hrs { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 86400"; } } default "162"; description "TCA threshold for OTU far-end errored seconds in 24 hours"; } } // container otu-tca-es-fe container otu-tca-ses-fe { description "OTU far-end Severely Errored Seconds Threshold crossing defect trigger"; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable the OTU far-end Unavailable Seconds threshold crossing alert"; } leaf no-enable-tca { type empty; description "Don't enable the OTU far-end Unavailable Seconds threshold crossing alert"; } } // choice enable-tca-choice leaf threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 900"; } } default "90"; description "TCA threshold for OTU far-end severely errored seconds in 15 minutes"; } leaf threshold-24hrs { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 86400"; } } default "108"; description "TCA threshold for OTU far-end severely errored seconds in 24 hours"; } } // container otu-tca-ses-fe container otu-tca-uas-fe { description "OTU far-end Unavailable Seconds Threshold crossing defect trigger"; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable the OTU far end unavailabe second threshold crossing alert"; } leaf no-enable-tca { type empty; description "Don't enable the OTU far end unavailabe second threshold crossing alert"; } } // choice enable-tca-choice leaf threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "10 .. 900"; } } default "90"; description "TCA threshold for OTU far-end unavailable seconds in 15 minutes"; } leaf threshold-24hrs { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "10 .. 86400"; } } default "108"; description "TCA threshold for OTU far-end unavailable seconds in 24 hours"; } } // container otu-tca-uas-fe container otu-tca-bbe-fe { description "OTU far-end Background Block Error (BEI) Threshold crossing defect trigger"; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable the OTU BBE (BEI) threshold crossing alert"; } leaf no-enable-tca { type empty; description "Don't enable the OTU BBE (BEI) threshold crossing alert"; } } // choice enable-tca-choice leaf threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 771000000"; } } default "800"; description "TCA threshold for OTU far-end BBE (BEI) in 15 minutes"; } leaf threshold-24hrs { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 771000000"; } } default "960"; description "TCA threshold for OTU far-end BBE (BEI) in 24 hours"; } } // container otu-tca-bbe-fe container odu-tca-es { description "ODU Errored Seconds Threshold crossing defect trigger"; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable the ODU errored seconds threshold crossing alert"; } leaf no-enable-tca { type empty; description "Don't enable the ODU errored seconds threshold crossing alert"; } } // choice enable-tca-choice leaf threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 900"; } } default "135"; description "TCA threshold for ODU errored seconds in 15 minutes"; } leaf threshold-24hrs { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 86400"; } } default "162"; description "TCA threshold for ODU errored seconds in 24 hours"; } } // container odu-tca-es container odu-tca-ses { description "ODU Severely Errored Seconds Threshold crossing defect trigger"; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable the ODU severely errored seconds threshold crossing alert"; } leaf no-enable-tca { type empty; description "Don't enable the ODU severely errored seconds threshold crossing alert"; } } // choice enable-tca-choice leaf threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 900"; } } default "90"; description "TCA threshold for ODU severely errored seconds in 15 minutes"; } leaf threshold-24hrs { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 86400"; } } default "108"; description "TCA threshold for ODU severely-errored seconds in 24 hours"; } } // container odu-tca-ses container odu-tca-uas { description "ODU Unavailable Seconds Threshold crossing defect trigger"; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable the ODU unavailable seconds threshold crossing alert"; } leaf no-enable-tca { type empty; description "Don't enable the ODU unavailable seconds threshold crossing alert"; } } // choice enable-tca-choice leaf threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "10 .. 900"; } } default "90"; description "TCA threshold for ODU unavailable seconds in 15 minutes"; } leaf threshold-24hrs { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "10 .. 86400"; } } default "108"; description "TCA threshold for ODU unavailable seconds in 24 hours"; } } // container odu-tca-uas container odu-tca-bbe { description "ODU Background Block Error Threshold crossing defect trigger"; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable the ODU BBE threshold crossing alert"; } leaf no-enable-tca { type empty; description "Don't enable the ODU BBE threshold crossing alert"; } } // choice enable-tca-choice leaf threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 771000000"; } } default "800"; description "TCA threshold for ODU BBE in 15 minutes"; } leaf threshold-24hrs { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 771000000"; } } default "960"; description "TCA threshold for ODU backgrand block error in 24 hours"; } } // container odu-tca-bbe container odu-tca-es-fe { description "ODU far-end Errored Seconds Threshold crossing defect trigger"; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable the ODU far-end errored seconds threshold crossing alert"; } leaf no-enable-tca { type empty; description "Don't enable the ODU far-end errored seconds threshold crossing alert"; } } // choice enable-tca-choice leaf threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 900"; } } default "135"; description "TCA threshold for ODU far-end errored seconds in 15 minutes"; } leaf threshold-24hrs { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 86400"; } } default "162"; description "TCA threshold for ODU far-end errored seconds in 24 hours"; } } // container odu-tca-es-fe container odu-tca-ses-fe { description "ODU far-end Severely Errored Seconds Threshold crossing defect trigger"; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable the ODU far-end Unavailable Seconds threshold crossing alert"; } leaf no-enable-tca { type empty; description "Don't enable the ODU far-end Unavailable Seconds threshold crossing alert"; } } // choice enable-tca-choice leaf threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 900"; } } default "90"; description "TCA threshold for ODU far-end severely errored seconds in 15 minutes"; } leaf threshold-24hrs { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 86400"; } } default "108"; description "TCA threshold for ODU severely-errored seconds in 24 hours"; } } // container odu-tca-ses-fe container odu-tca-uas-fe { description "ODU far-end Unavailable Seconds Threshold crossing defect trigger"; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable the ODU far end unavailabe second threshold crossing alert"; } leaf no-enable-tca { type empty; description "Don't enable the ODU far end unavailabe second threshold crossing alert"; } } // choice enable-tca-choice leaf threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "10 .. 900"; } } default "90"; description "TCA threshold for ODU far-end unavailable seconds in 15 minutes"; } leaf threshold-24hrs { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "10 .. 86400"; } } default "108"; description "TCA threshold for ODU far-end unavailable seconds in 24 hours"; } } // container odu-tca-uas-fe container odu-tca-bbe-fe { description "ODU far-end Background Block Error (BEI) Threshold crossing defect trigger"; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable the ODU BBE (BEI) threshold crossing alert"; } leaf no-enable-tca { type empty; description "Don't enable the ODU BBE (BEI) threshold crossing alert"; } } // choice enable-tca-choice leaf threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 771000000"; } } default "800"; description "TCA threshold for ODU far-end BBE (BEI) in 15 minutes"; } leaf threshold-24hrs { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 771000000"; } } default "960"; description "TCA threshold for ODU far-end backgrand block error in 24 hours"; } } // container odu-tca-bbe-fe container otu-tca-fec-ber { description "OTU Errored Seconds Threshold crossing defect trigger"; choice enable-tca-choice { leaf enable-tca { type empty; description "Enable the OTU errored seconds threshold crossing alert"; } leaf no-enable-tca { type empty; description "Don't enable the OTU errored seconds threshold crossing alert"; } } // choice enable-tca-choice leaf threshold { type string { junos:posix-pattern "^[0-9]+(.[0-9]+)?e-[0-9]$"; junos:pattern-message "FEC BER threshold value in format: xe-n, x is an integer or decimal number, n = 0..9"; } default "10e-3"; description "TCA threshold for BER value in format: xe-n, x is an integer or decimal number, n = 0..9"; } leaf threshold-24hrs { type string { junos:posix-pattern "^[0-9]+(.[0-9]+)?e-[0-9]$"; junos:pattern-message "FEC BER threshold value in format: xe-n, x is an integer or decimal number, n = 0..9"; } default "10e-3"; description "TCA threshold for BER value in format: xe-n, x is an integer or decimal number, n = 0..9"; } } // container otu-tca-fec-ber } // container tca } // grouping otn_options_type grouping otu-attributes { description "Optical transmission unit configuration attributes"; uses apply-advanced; leaf rate { type enumeration { enum "otu4" { value 0; description "OTU4 for 100 Gbps"; } } description "Specific type of OTU, according to data rate"; } choice is-ma-choice { leaf is-ma { type empty; description "Link is enabled for maintenance tasks, alarms are masked"; } leaf no-is-ma { type empty; description "Don't link is enabled for maintenance tasks, alarms are masked"; } } // choice is-ma-choice leaf fec { type enumeration { enum "none" { value 0; description "No forward error correction applied"; } enum "gfec" { value 1; description "ITU-T G.709 standard forward error correction"; } enum "hgfec" { value 2; description "High gain FEC"; } } description "Forward error correction type"; } leaf loopback { type enumeration { enum "none" { value 0; description "No loopback mode active"; } enum "local" { value 1; description "Local loopback (host side)"; } enum "line" { value 2; description "Line loopback (network side)"; } } description "Enabled loopback mode"; } container tti { presence "enable tti"; description "Configuration of OTU trail trace identifier"; uses otn-tti-attributes; } // container tti container degrade { presence "enable degrade"; description "Configuration of OTU degrade defect detection"; uses otn-degrade; } // container degrade } // grouping otu-attributes grouping ppp_options_type { uses apply-advanced; leaf dynamic-profile { junos:must "("dynamic-profiles $$")"; junos:must-message "referenced dynamic-profile must be defined"; junos:must "(any ".. .. .. unit <*>")"; junos:must-message "dynamic-profile statement can be configured only on logical interfaces"; type string; description "Dynamic profile name"; } container chap { presence "enable chap"; description "Challenge Handshake Authentication Protocol options"; uses apply-advanced; choice access-data { leaf access-profile { junos:must "("access profile $$")"; junos:must-message "referenced access profile must be defined"; type string { length "1 .. 63"; } description "Profile containing client list and access parameters"; } leaf default-chap-secret { type jt:unreadable; description "Default CHAP secret to be used when no matching access profile exists"; } } // choice access-data leaf local-name { type string; description "Name sent in CHAP-Challenge and CHAP-Response"; } leaf no-rfc2486 { type empty; description "RFC2486 compliance is not enforced"; } leaf passive { type empty; description "Handle incoming CHAP requests only"; } } // container chap container pap { presence "enable pap"; description "Password Authentication Protocol options"; uses apply-advanced; choice access-data { leaf access-profile { junos:must "("access profile $$")"; junos:must-message "referenced access profile must be defined"; type string { length "1 .. 63"; } description "Profile containing client list and access parameters"; } leaf default-password { type jt:unreadable; description "Default PAP password used in the absence of matching profile"; } } // choice access-data leaf local-name { type string; description "Name sent in PAP request packet"; } leaf no-rfc2486 { type empty; description "RFC2486 compliance is not enforced"; } leaf local-password { type jt:unreadable; description "Password sent in PAP request packet"; } leaf passive { junos:must "(".. local-password")"; junos:must-message "local-password MUST be set if passive is used with PAP"; type empty; description "Do not handle PAP authentication requests"; } } // container pap container compression { description "Set compression options"; leaf acfc { junos:must "(!(".. .. .. encapsulation frame-relay-ppp"))"; junos:must-message "compression acfc is not supported on encapsulation frame-relay-ppp"; type empty; description "Negotiate Address/Control field compression"; } leaf pfc { type empty; description "Negotiate Protocol field compression"; } } // container compression leaf lcp-restart-timer { junos:must "(any ".. .. .. unit <*>")"; junos:must-message "lcp-restart-timer statement can be configured only on logical interfaces"; type union { type string { pattern "<.*>|$.*"; } type uint16 { range "20 .. 10000"; } } units "milliseconds"; description "LCP restart timer"; } leaf ncp-restart-timer { junos:must "(any ".. .. .. unit <*>")"; junos:must-message "ncp-restart-timer statement can be configured only on logical interfaces"; type union { type string { pattern "<.*>|$.*"; } type uint16 { range "500 .. 10000"; } } units "milliseconds"; description "NCP restart timer"; } leaf no-termination-request { type empty; description "Don't send PPP termination requests"; } leaf loopback-clear-timer { junos:must "(any ".. .. .. unit <*>")"; junos:must-message "loopback-clear-timer statement can be configured only on logical interfaces"; type union { type string { pattern "<.*>|$.*"; } type uint8 { range "1 .. 60"; } } units "seconds"; description "Loopback clear timer"; } leaf lcp-max-conf-req { junos:must "(any ".. .. .. unit <*>")"; junos:must-message "lcp-max-conf-req statement can be configured only on logical interfaces"; type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 65535"; } } description "Maximum LCP Conf-Req to be sent, 0 means infinite"; } leaf ncp-max-conf-req { junos:must "(any ".. .. .. unit <*>")"; junos:must-message "ncp-max-conf-req statement can be configured only on logical interfaces"; type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 65535"; } } description "Maximum NCP Conf-Req to be sent, 0 means infinite"; } leaf on-demand-ip-address { junos:must "(any ".. .. .. unit <*>")"; junos:must-message "on-demand-ip-address statement can be configured only on logical interfaces"; type empty; description "Enable On-Demand IPv4 address allocation and de-allocation"; } leaf aaa-options { junos:must "("access aaa-options $$")"; junos:must-message "referenced aaa-options name must be defined"; type string { length "1 .. 63"; } description "Attach AAA options name to dynamic-profile"; } container initiate-ncp { junos:must "(any ".. .. .. unit <*>")"; junos:must-message "initiate-ncp statement can be configured only on logical interfaces"; description "Enable server initiated NCP"; uses apply-advanced; leaf ip { type empty; description "Enable server initiated IPNCP"; } leaf ipv6 { type empty; description "Enable server initiated IPv6NCP"; } leaf dual-stack-passive { type empty; description "Disable server initiated IPNCP/IPv6NCP for dual-stack client"; } } // container initiate-ncp leaf mtu { junos:must "(any ".. .. .. unit <*>")"; junos:must-message "mtu statement can be configured only on logical interfaces"; type string; description "The Maximum Transfer Unit size in bytes"; } leaf peer-ip-address-optional { type empty; description "Set Peer IP Address Optional in IP NCP Negotiations"; } leaf ipcp-suggest-dns-option { type empty; description "Suggest peer to negotiate with DNS Addresses options"; } leaf ignore-magic-number-mismatch { type empty; description "Ignore magic-number validation failure in LCP keepalive"; } container local-authentication { description "Local Authentication Protocol options"; uses local_auth_type; } // container local-authentication leaf lcp-connection-update { type empty; description "Enable LCP connection update request to peer"; } } // grouping ppp_options_type grouping local_auth_type { description "Local authentication"; uses apply-advanced; leaf password { type string { length "1 .. 64"; } description "Username password"; } container username-include { description "Add username options"; uses apply-advanced; leaf mac-address { type empty; description "Include MAC address"; } leaf circuit-id { type empty; description "Include circuit-id "; } leaf remote-id { type empty; description "Include remote-id "; } leaf domain-name { type string { length "1 .. 64"; } description "Domain name"; } leaf delimiter { type string { length "1"; } description "Delimiter/separator character"; } } // container username-include } // grouping local_auth_type grouping pppoe_options_type { uses apply-advanced; leaf underlying-interface { junos:must "((!("interfaces $$-IFL pppoe-underlying-options dynamic-profile") && !("interfaces $$-IFL family pppoe dynamic-profile")))"; junos:must-message "Underlying interface cannot be used for both static and dynamic PPPoE interfaces"; junos:must "(("interfaces $$-IFL encapsulation ppp-over-ether" || ("interfaces $$-IFL encapsulation ppp-over-ether-over-atm-llc" || "interfaces $$-IFL family pppoe")))"; junos:must-message "Underlying interface must be configured"; type string; description "Underlying interface name"; } leaf idle-timeout { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 4294967295"; } } units "seconds"; description "Time for which session can be idle (0 = forever)"; } leaf access-concentrator { type string; description "Name of the access concentrator (PPPoE server)"; } leaf service-name { type string; description "Service to be requested (from PPPoE server)"; } leaf auto-reconnect { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 4294967295"; } } units "seconds"; description "Time to reconnect after session terminates (0 = never)"; } choice pppoe-mode { leaf server { type empty; description "PPPoE operates in server mode"; } leaf client { type empty; description "PPPoE operates in client mode"; } } // choice pppoe-mode leaf ppp-max-payload { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1492 .. 9192"; } } description "Specify the value of ppp-max-payload tag"; } } // grouping pppoe_options_type grouping prbs-config { description "Configuration of pseudorandom binary sequence test signal"; uses apply-advanced; choice enable-prbs-choice { leaf enable-prbs { type empty; description "Enable PRBS test pattern generation and monitoring"; } leaf no-enable-prbs { type empty; description "Don't enable PRBS test pattern generation and monitoring"; } } // choice enable-prbs-choice leaf direction { type enumeration { enum "local" { value 0; description "Test signal generated towards and received from host-side"; } enum "line" { value 1; description "Test signal generated towards and received from network-side"; } } default "line"; description "Direction of generated and received PRBS test signal"; } leaf pattern { type enumeration { enum "prbs-31" { value 0; description "2^31 polynomial PRBS test signal, as per G.709"; } enum "prbs-23" { value 1; description "2^23 polynomial PRBS test signal, SONET/SDH framed"; } enum "prbs-15" { value 2; description "2^15 polynomial PRBS test signal"; } enum "prbs-7" { value 3; description "2^7 polynomial PRBS test signal"; } } default "prbs-31"; description "Pattern to use for PRBS test signal"; } choice invert-choice { leaf invert { type empty; description "Invert the test pattern"; } leaf no-invert { type empty; description "Don't invert the test pattern"; } } // choice invert-choice } // grouping prbs-config grouping sonet_options_type { uses apply-advanced; leaf vtmapping { type enumeration { enum "klm" { value 0; description "KLM mode"; } enum "itu-t" { value 1; description "ITU-T mode"; } } description "VT mapping mode"; } leaf fcs { type enumeration { enum "32" { value 0; description "32-bit mode"; } enum "16" { value 1; description "16-bit mode"; } } description "Frame checksum"; } leaf path-trace { type string; description "Path trace string"; } leaf loopback { type enumeration { enum "local" { value 0; description "Local loopback"; } enum "remote" { value 1; description "Remote loopback"; } } description "Loopback mode"; } container trigger { description "Defect triggers"; uses apply-advanced; container lol { description "LOL defect trigger"; choice lol_choices { leaf ignore { type empty; description "Ignore the defect"; } container hold-time { description "Delay before marking interface up or down for defect"; leaf up { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before marking interface up when defect is absent"; } leaf down { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before marking interface down when defect occurs"; } } // container hold-time } // choice lol_choices } // container lol container pll { description "PLL defect trigger"; choice pll_choices { leaf ignore { type empty; description "Ignore the defect"; } container hold-time { description "Delay before marking interface up or down for defect"; leaf up { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before marking interface up when defect is absent"; } leaf down { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before marking interface down when defect occurs"; } } // container hold-time } // choice pll_choices } // container pll container lof { description "LOF defect trigger"; choice lof_choices { leaf ignore { type empty; description "Ignore the defect"; } container hold-time { description "Delay before marking interface up or down for defect"; leaf up { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before marking interface up when defect is absent"; } leaf down { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before marking interface down when defect occurs"; } } // container hold-time } // choice lof_choices } // container lof container los { description "LOS defect trigger"; choice los_choices { leaf ignore { type empty; description "Ignore the defect"; } container hold-time { description "Delay before marking interface up or down for defect"; leaf up { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before marking interface up when defect is absent"; } leaf down { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before marking interface down when defect occurs"; } } // container hold-time } // choice los_choices } // container los container ais-l { description "AIS-L defect trigger"; choice ais_l_choices { leaf ignore { type empty; description "Ignore the defect"; } container hold-time { description "Delay before marking interface up or down for defect"; leaf up { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before marking interface up when defect is absent"; } leaf down { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before marking interface down when defect occurs"; } } // container hold-time } // choice ais_l_choices } // container ais-l container rfi-l { description "RFI-L defect trigger"; choice rfi_l_choices { leaf ignore { type empty; description "Ignore the defect"; } container hold-time { description "Delay before marking interface up or down for defect"; leaf up { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before marking interface up when defect is absent"; } leaf down { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before marking interface down when defect occurs"; } } // container hold-time } // choice rfi_l_choices } // container rfi-l container ber-sd { description "BER-SD defect trigger"; uses apply-advanced; choice ber_sd_choices { leaf ignore { type empty; description "Ignore the defect"; } container hold-time { description "Delay before marking interface up or down for defect"; leaf up { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before marking interface up when defect is absent"; } leaf down { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before marking interface down when defect occurs"; } } // container hold-time } // choice ber_sd_choices } // container ber-sd container ber-sf { description "BER-SF defect trigger"; uses apply-advanced; choice ber_sf_choices { leaf ignore { type empty; description "Ignore the defect"; } container hold-time { description "Delay before marking interface up or down for defect"; leaf up { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before marking interface up when defect is absent"; } leaf down { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before marking interface down when defect occurs"; } } // container hold-time } // choice ber_sf_choices } // container ber-sf container ais-p { description "AIS-P defect trigger"; choice ais_p_choices { leaf ignore { type empty; description "Ignore the defect"; } container hold-time { description "Delay before marking interface up or down for defect"; leaf up { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before marking interface up when defect is absent"; } leaf down { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before marking interface down when defect occurs"; } } // container hold-time } // choice ais_p_choices } // container ais-p container lop-p { description "LOP-P defect trigger"; choice lop_p_choices { leaf ignore { type empty; description "Ignore the defect"; } container hold-time { description "Delay before marking interface up or down for defect"; leaf up { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before marking interface up when defect is absent"; } leaf down { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before marking interface down when defect occurs"; } } // container hold-time } // choice lop_p_choices } // container lop-p container rfi-p { description "RFI-P defect trigger"; choice rfi_p_choices { leaf ignore { type empty; description "Ignore the defect"; } container hold-time { description "Delay before marking interface up or down for defect"; leaf up { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before marking interface up when defect is absent"; } leaf down { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before marking interface down when defect occurs"; } } // container hold-time } // choice rfi_p_choices } // container rfi-p container uneq-p { description "UNEQ-P defect trigger"; choice uneq_p_choices { leaf ignore { type empty; description "Ignore the defect"; } container hold-time { description "Delay before marking interface up or down for defect"; leaf up { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before marking interface up when defect is absent"; } leaf down { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before marking interface down when defect occurs"; } } // container hold-time } // choice uneq_p_choices } // container uneq-p container plm-p { description "PLM-P defect trigger"; choice plm_p_choices { leaf ignore { type empty; description "Ignore the defect"; } container hold-time { description "Delay before marking interface up or down for defect"; leaf up { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before marking interface up when defect is absent"; } leaf down { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before marking interface down when defect occurs"; } } // container hold-time } // choice plm_p_choices } // container plm-p container locd { description "LOCD defect trigger (ATM only)"; choice locd_choices { leaf ignore { type empty; description "Ignore the defect"; } container hold-time { description "Delay before marking interface up or down for defect"; leaf up { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before marking interface up when defect is absent"; } leaf down { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before marking interface down when defect occurs"; } } // container hold-time } // choice locd_choices } // container locd container lcdp { description "LCD-P defect trigger (Ethernet WAN only)"; choice lcdp_choices { leaf ignore { type empty; description "Ignore the defect"; } container hold-time { description "Delay before marking interface up or down for defect"; leaf up { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before marking interface up when defect is absent"; } leaf down { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65534"; } } units "milliseconds"; description "Delay before marking interface down when defect occurs"; } } // container hold-time } // choice lcdp_choices } // container lcdp } // container trigger container aps { description "Automatic Protection Switching"; uses aps_type; } // container aps choice payload_scrambler_choices { container payload-scrambler { presence "enable payload-scrambler"; description "Enable payload scrambling"; choice payload-choice { } // choice payload-choice } // container payload-scrambler leaf no-payload-scrambler { type empty; description "Do not enable payload scrambling"; } } // choice payload_scrambler_choices choice z0-increment-choice { leaf z0-increment { type empty; description "Increment Z0 in SDH mode"; } leaf no-z0-increment { type empty; description "Don't increment Z0 in SDH mode"; } } // choice z0-increment-choice choice loop-timing-choice { leaf loop-timing { type empty; description "Set loop timing for STM-1"; } leaf no-loop-timing { type empty; description "Don't set loop timing for STM-1"; } } // choice loop-timing-choice container bytes { description "Set SONET header bytes"; uses apply-advanced; leaf e1-quiet { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "E1-quiet value"; } leaf f1 { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "F1 user value"; } leaf f2 { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "F2 user value"; } leaf s1 { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "S1/Z1 value (stratum clock by convention)"; } leaf z3 { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Z3 user value"; } leaf z4 { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Z4 user value"; } leaf c2 { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "C2 user value"; } } // container bytes leaf rfc-2615 { type empty; description "RFC 2615 compliance"; } leaf aggregate { type union { type jt:interface-device; type string { pattern "<.*>|$.*"; } } description "Join a SONET aggregate"; } container mpls { description "MPLS options"; uses mpls_ifd_options; } // container mpls } // grouping sonet_options_type grouping tdm_options_type { uses apply-advanced; leaf sfp-type { junos:must "((any " .. .. unit <*> " || " .. .. vlan-tagging"))"; junos:must-message "either IFL or vlan-tagging must be configured to use tdm-options"; type enumeration { enum "T1" { value 0; description "T1 smart SFP"; } enum "E1" { value 1; description "E1 smart SFP"; } enum "DS3" { value 2; description "DS3 smart SFP"; } enum "STM1" { value 3; description "STM1 smart SFP"; } enum "STM4" { value 4; description "STM4 smart SFP"; } enum "STM16" { value 5; description "STM16 smart SFP"; } } description "Smart SFP type"; } leaf tdm-in-loop { junos:must "(!(".. tdm-out-loop"))"; junos:must-message "tdm-in-loop and tdm-out-loop cannot be configured simultaneously"; type empty; description "Configure port in TDM IN-LOOP mode"; } leaf tdm-out-loop { type empty; description "Configure port in TDM OUT-LOOP mode"; } leaf ces-psn-port-dmac-check-enable { type empty; description "Enable DMAC check on smart SFP"; } container iwf-params { description "TDM interworking functionality (IWF) parameters"; uses apply-advanced; leaf decap-ecid { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 1048575"; } } description "ECID for decapsulation"; } leaf encap-ecid { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 1048575"; } } description "ECID for encapsulation"; } } // container iwf-params container ces-psn-channel { description "CES PSN channel parameters"; uses apply-advanced; leaf dmac-address { type jt:mac-addr; description "Destination MAC-address to be paired with the Smart SFP"; } leaf mode { type enumeration { enum "MEF8" { value 0; description "MEF8 encapsulation"; } enum "MPLS" { junos:must "(!((".. .. sfp-type STM1" || (".. .. sfp-type STM4" || ".. .. sfp-type STM16"))))"; junos:must-message "MPLS mode is not supported for STM smart SFPs"; value 1; description "MPLS Encapsulation"; } } description "PSN encapsulation mode"; } leaf vlan-id-1 { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 4094"; } } description "VLAN ID for encapsulation"; } leaf vlan-id-2 { junos:must "(!((".. .. sfp-type STM1" || (".. .. sfp-type STM4" || ".. .. sfp-type STM16"))))"; junos:must-message "STM Smart SFPs do not support vlan-id-2"; junos:must "(".. vlan-id-1")"; junos:must-message "vlan-id-1 must be configured to configure vlan-id-2"; type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 4094"; } } description "Outer VLAN ID for encapsulation"; } } // container ces-psn-channel } // grouping tdm_options_type grouping vlan_map { description "IEEE 802.1q Virtual LAN (VLAN) Tag mapping"; uses apply-advanced; choice operation_choices { leaf push { type empty; description "Push a VLAN tag"; } leaf swap { type empty; description "Swap a VLAN tag"; } leaf pop { type empty; description "Pop a VLAN tag"; } leaf push-push { type empty; description "Push two VLAN tags"; } leaf swap-push { type empty; description "Swap VLAN tag and push a new VLAN tag"; } leaf swap-swap { type empty; description "Swap both outer and inner VLAN tags"; } leaf pop-swap { type empty; description "Pop outer VLAN tag and swap inner VLAN tag"; } leaf pop-pop { type empty; description "Pop both outer and inner VLAN tags"; } } // choice operation_choices leaf tag-protocol-id { type string { junos:posix-pattern "^0x[abcdefABCDEF0123456789]{4}$"; junos:pattern-message "Must be hexadecimal bit pattern of form 0xNNNN"; } description "IEEE 802.1q Tag Protocol Identifier to rewrite"; } leaf inner-tag-protocol-id { type string; description "IEEE 802.1q Tag Protocol ID to rewrite for inner tag"; } leaf vlan-id { type string; description "VLAN ID to rewrite"; } leaf inner-vlan-id { type string; description "VLAN ID to rewrite for inner tag"; } } // grouping vlan_map grouping vrrp-group { description "Virtual Router Redundancy Protocol group"; leaf name { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Identifier for VRRP group"; } uses apply-advanced; choice address { leaf-list virtual-address { type jt:ipv4addr; ordered-by user; description "One or more virtual IPv4 addresses"; } leaf-list virtual-inet6-address { type jt:ipv6addr; ordered-by user; description "One or more virtual inet6 addresses"; } } // choice address leaf virtual-link-local-address { junos:must "(".. .. vrrp-inet6-group")"; junos:must-message "'virtual-link-local-address' statement can be included only for interfaces of type 'family inet6'"; type jt:ipv6addr; description "Virtual link-local addresses"; } leaf priority { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Virtual router election priority"; } leaf preferred { type empty; description "Preferred group on subnet"; } choice advertisement_type { leaf advertise-interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 255"; } } units "seconds"; description "Advertisement interval"; } leaf fast-interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "10 .. 40950"; } } units "milliseconds"; description "Fast advertisement interval"; } leaf inet6-advertise-interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "100 .. 40000"; } } units "milliseconds"; description "Inet6 advertisement interval"; } } // choice advertisement_type choice preempt_type { container preempt { presence "enable preempt"; description "Allow preemption"; uses apply-advanced; leaf hold-time { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 3600"; } } units "seconds"; description "Preemption hold time"; } } // container preempt leaf no-preempt { type empty; description "Don't allow preemption"; } } // choice preempt_type choice accept_type { leaf accept-data { type empty; description "Accept packets destined for virtual IP address"; } leaf no-accept-data { type empty; description "Don't accept packets destined for virtual IP address"; } } // choice accept_type leaf authentication-type { junos:must "(".. .. vrrp-group")"; junos:must-message "'authentication-type' statement can be included only for interfaces of type 'family inet'"; type enumeration { enum "md5" { value 0; description "HMAC-MD5-96"; } enum "simple" { value 1; description "Simple password"; } } description "Authentication type"; } leaf authentication-key { junos:must "(".. .. vrrp-group")"; junos:must-message "'authentication-key' statement can be included only for interfaces of type 'family inet'"; type jt:unreadable; description "Authentication key"; } container track { description "Interfaces to track for VRRP group"; uses apply-advanced; leaf priority-hold-time { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 3600"; } } units "seconds"; description "Priority hold time"; } list interface { key "name"; ordered-by user; description "Interface to track in VRRP group"; leaf name { type union { type jt:interface-unit; type string { pattern "<.*>|$.*"; } } description "Name of interface"; } uses apply-advanced; list bandwidth-threshold { key "name"; description "Track bandwidth of interface"; leaf name { type string; units "bits per second"; description "Interface speed below which priority cost is incurred"; } leaf priority-cost { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 254"; } } description "Value subtracted from priority when bandwidth is below threshold"; } } // list bandwidth-threshold leaf priority-cost { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 254"; } } description "Value to subtract from priority when interface is down"; } } // list interface list route { key "route_address routing-instance"; ordered-by user; description "Route to track in VRRP group"; leaf route_address { type jt:ipprefix-mandatory; description "Route address"; } leaf routing-instance { type string { junos:posix-pattern "!^((__.*__)|(all)|(.*[ ].*)|("")|(.{129,}))$"; junos:pattern-message "Must be a non-reserved string of 128 characters or less with no spaces."; } description "Routing instance to which route belongs, or 'default'"; } leaf priority-cost { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 254"; } } description "Value to subtract from priority when route is down"; } } // list route } // container track container vrrp-inherit-from { description "VRRP group to follow for this VRRP group"; uses apply-advanced; leaf active-interface { type union { type jt:interface-unit; type string { pattern "<.*>|$.*"; } } description "Interface name of VRRP active group"; } leaf active-group { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } description "Identifier for VRRP active group"; } } // container vrrp-inherit-from leaf advertisements-threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 15"; } } description "Number of vrrp advertisements missed before declaring master down"; } } // grouping vrrp-group } // module junos-qfx-conf-interfaces
© 2023 YumaWorks, Inc. All rights reserved.