junos-qfx-conf-interfaces

Junos interfaces configuration module

  • Version: 2019-01-01

    junos-qfx-conf-interfaces@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.