Cisco-IOS-XR-um-ethernet-oam-cfg

This module contains a collection of YANG definitions for Cisco IOS-XR ethernet-oam package configuration. This YANG module aug...

  • Version: 2021-02-19

    Cisco-IOS-XR-um-ethernet-oam-cfg@2021-02-19


    
      module Cisco-IOS-XR-um-ethernet-oam-cfg {
    
        yang-version 1;
    
        namespace
          "http://cisco.com/ns/yang/Cisco-IOS-XR-um-ethernet-oam-cfg";
    
        prefix um-ethernet-oam-cfg;
    
        import Cisco-IOS-XR-types {
          prefix xr;
        }
        import Cisco-IOS-XR-um-snmp-server-cfg {
          prefix a1;
        }
        import Cisco-IOS-XR-um-interface-cfg {
          prefix a2;
        }
        import cisco-semver {
          prefix semver;
        }
    
        organization "Cisco Systems, Inc.";
    
        contact
          "Cisco Systems, Inc.
         Customer Service
         
         Postal: 170 West Tasman Drive
         San Jose, CA 95134
         
         Tel: +1 800 553-NETS
         
         E-mail: cs-yang@cisco.com";
    
        description
          "This module contains a collection of YANG definitions
         for Cisco IOS-XR ethernet-oam package configuration.
         
         This YANG module augments the
         modules with configuration data.
         
         Copyright (c) 2021 by Cisco Systems, Inc.
         All rights reserved.";
    
        revision "2021-02-19" {
          description "Initial release";
        }
    
        semver:module-version "1.0.0";
    
        container ethernet {
          description
            "Ethernet configuration commands";
          container oam {
            description
              "Configure information relating to Ethernet Link OAM";
            container profiles {
              description "802.3 OAM profiles";
              list profile {
                key "profile-name";
                description
                  "The name of the profile";
                leaf profile-name {
                  type xr:Cisco-ios-xr-string {
                    length "1..32";
                    pattern
                      "[-a-zA-Z0-9_]*[-a-zA-Z0-9_]";
                  }
                  description
                    "The name of the profile";
                }
    
                container link-monitor {
                  description
                    "Enter link-monitor submode";
                  container symbol-period {
                    description
                      "Symbol-period event configuration";
                    container window {
                      description
                        "window size for symbol-period event configuration";
                      leaf milliseconds {
                        type uint32 {
                          range "1000..60000";
                        }
                        must
                          "not(../symbols/window-size)";
                        description
                          "Use milliseconds as the units for the symbol-period window";
                      }
    
                      container symbols {
                        description
                          "Use symbols as the units for the symbol-period window";
                        leaf window-size {
                          type uint32 {
                            range
                              "1..4294967295";
                          }
                          must
                            "not(../../milliseconds)";
                          description
                            "Size of the symbol-period window in symbols";
                        }
    
                        container thousand {
                          must
                            "../window-size and not(../million or ../billion)";
                          presence
                            "Indicates a thousand node is configured.";
                          description
                            "Use thousands of the specified units";
                        }  // container thousand
    
                        container million {
                          must
                            "../window-size and not(../thousand or ../billion)";
                          presence
                            "Indicates a million node is configured.";
                          description
                            "Use millions of the specified units";
                        }  // container million
    
                        container billion {
                          must
                            "../window-size and not(../thousand or ../million)";
                          presence
                            "Indicates a billion node is configured.";
                          description
                            "Use billions of the specified units";
                        }  // container billion
                      }  // container symbols
                    }  // container window
    
                    container threshold {
                      description
                        "threshold configuration for symbol-period events";
                      container symbols {
                        description
                          "Use symbols as the units for the symbol-period threshold";
                        leaf low {
                          type uint32 {
                            range
                              "1..4294967295";
                          }
                          description
                            "low threshold for symbol-period events";
                        }
    
                        leaf high {
                          type uint32 {
                            range
                              "1..4294967295";
                          }
                          description
                            "high threshold for symbol-period events";
                        }
    
                        container thousand {
                          must
                            "(../low or ../high) and not(../million or ../billion)";
                          presence
                            "Indicates a thousand node is configured.";
                          description
                            "Use thousands of the specified units";
                        }  // container thousand
    
                        container million {
                          must
                            "(../low or ../high) and not(../thousand or ../billion)";
                          presence
                            "Indicates a million node is configured.";
                          description
                            "Use millions of the specified units";
                        }  // container million
    
                        container billion {
                          must
                            "(../low or ../high) and not(../thousand or ../million)";
                          presence
                            "Indicates a billion node is configured.";
                          description
                            "Use billions of the specified units";
                        }  // container billion
                      }  // container symbols
    
                      container ppm {
                        description
                          "Use parts-per-million as the units for the symbol-period threshold";
                        leaf low {
                          type uint32 {
                            range "1..1000000";
                          }
                          description
                            "low threshold for symbol-period events";
                        }
    
                        leaf high {
                          type uint32 {
                            range "1..1000000";
                          }
                          description
                            "high threshold for symbol-period events";
                        }
                      }  // container ppm
                    }  // container threshold
                  }  // container symbol-period
    
                  container frame {
                    description
                      "Frame event configuration";
                    container window {
                      description
                        "window size for frame event configuration";
                      leaf milliseconds {
                        type uint32 {
                          range "1000..60000";
                        }
                        description
                          "Use milliseconds as the units for the frame window";
                      }
                    }  // container window
    
                    container threshold {
                      description
                        "threshold configuration for frame events";
                      leaf low {
                        type uint32 {
                          range "1..4294967295";
                        }
                        description
                          "low threshold for frame events";
                      }
    
                      leaf high {
                        type uint32 {
                          range "1..4294967295";
                        }
                        description
                          "high threshold for frame events";
                      }
    
                      container thousand {
                        must
                          "(../low or ../high) and not(../million or ../billion)";
                        presence
                          "Indicates a thousand node is configured.";
                        description
                          "Use thousands of the specified units";
                      }  // container thousand
    
                      container million {
                        must
                          "(../low or ../high) and not(../thousand or ../billion)";
                        presence
                          "Indicates a million node is configured.";
                        description
                          "Use millions of the specified units";
                      }  // container million
    
                      container billion {
                        must
                          "(../low or ../high) and not(../thousand or ../million)";
                        presence
                          "Indicates a billion node is configured.";
                        description
                          "Use billions of the specified units";
                      }  // container billion
                    }  // container threshold
                  }  // container frame
    
                  container frame-period {
                    description
                      "frame-period event configuration";
                    container window {
                      description
                        "window size for frame-period event configuration";
                      leaf milliseconds {
                        type uint32 {
                          range "100..60000";
                        }
                        must
                          "not(../frames/window-size)";
                        description
                          "Use milliseconds as the units for the frame-period window";
                      }
    
                      container frames {
                        description
                          "Use frames as the units for the frame-period window";
                        leaf window-size {
                          type uint32 {
                            range
                              "1..4294967295";
                          }
                          must
                            "not(../../milliseconds)";
                          description
                            "Size of the frame-period window in symbols";
                        }
    
                        container thousand {
                          must
                            "../window-size and not(../million or ../billion)";
                          presence
                            "Indicates a thousand node is configured.";
                          description
                            "Use thousands of the specified units";
                        }  // container thousand
    
                        container million {
                          must
                            "../window-size and not(../thousand or ../billion)";
                          presence
                            "Indicates a million node is configured.";
                          description
                            "Use millions of the specified units";
                        }  // container million
    
                        container billion {
                          must
                            "../window-size and not(../thousand or ../million)";
                          presence
                            "Indicates a billion node is configured.";
                          description
                            "Use billions of the specified units";
                        }  // container billion
                      }  // container frames
                    }  // container window
    
                    container threshold {
                      description
                        "threshold for frame-period events";
                      container frames {
                        description
                          "Use frames as the units for the frame-period threshold";
                        leaf low {
                          type uint32 {
                            range
                              "1..4294967295";
                          }
                          description
                            "low threshold for frame-period events";
                        }
    
                        leaf high {
                          type uint32 {
                            range
                              "1..4294967295";
                          }
                          description
                            "high threshold for frame-period events";
                        }
    
                        container thousand {
                          must
                            "(../low or ../high) and not(../million or ../billion)";
                          presence
                            "Indicates a thousand node is configured.";
                          description
                            "Use thousands of the specified units";
                        }  // container thousand
    
                        container million {
                          must
                            "(../low or ../high) and not(../thousand or ../billion)";
                          presence
                            "Indicates a million node is configured.";
                          description
                            "Use millions of the specified units";
                        }  // container million
    
                        container billion {
                          must
                            "(../low or ../high) and not(../thousand or ../million)";
                          presence
                            "Indicates a billion node is configured.";
                          description
                            "Use billions of the specified units";
                        }  // container billion
                      }  // container frames
    
                      container ppm {
                        description
                          "Use parts-per-million as the units for the frame-period threshold";
                        leaf low {
                          type uint32 {
                            range "1..1000000";
                          }
                          description
                            "low threshold for frame events";
                        }
    
                        leaf high {
                          type uint32 {
                            range "1..1000000";
                          }
                          description
                            "high threshold for frame events";
                        }
                      }  // container ppm
                    }  // container threshold
                  }  // container frame-period
    
                  container frame-seconds {
                    description
                      "frame-seconds event configuration";
                    container window {
                      description
                        "window size for frame-seconds event configuration";
                      leaf milliseconds {
                        type uint32 {
                          range "10000..900000";
                        }
                        description
                          "Use milliseconds as the units for the frame-seconds window";
                      }
                    }  // container window
    
                    container threshold {
                      description "threshold";
                      leaf low {
                        type uint32 {
                          range "1..900";
                        }
                        description
                          "low threshold for frame-seconds events";
                      }
    
                      leaf high {
                        type uint32 {
                          range "1..900";
                        }
                        description
                          "high threshold for frame-seconds events";
                      }
                    }  // container threshold
                  }  // container frame-seconds
    
                  container monitoring {
                    presence
                      "Indicates a monitoring node is configured.";
                    description
                      "Monitoring support";
                    container disable {
                      presence
                        "Indicates a disable node is configured.";
                      description
                        "Disable monitoring";
                    }  // container disable
                  }  // container monitoring
                }  // container link-monitor
    
                container mode {
                  description "OAM mode";
                  container passive {
                    must "not(../active)";
                    presence
                      "Indicates a passive node is configured.";
                    description "Passive mode";
                  }  // container passive
    
                  container active {
                    must "not(../passive)";
                    presence
                      "Indicates a active node is configured.";
                    description "Active mode";
                  }  // container active
                }  // container mode
    
                leaf hello-interval {
                  type enumeration {
                    enum "100ms" {
                      value 1;
                      description
                        "100 millisecond hello interval";
                    }
                    enum "1s" {
                      value 0;
                      description
                        "1 second hello interval";
                    }
                  }
                  description
                    "Hello interval time";
                }
    
                container remote-loopback {
                  presence
                    "Indicates a remote-loopback node is configured.";
                  description
                    "Remote-loopback support";
                  container disable {
                    presence
                      "Indicates a detection node is configured.";
                    description
                      "Disable remote loopback support";
                  }  // container disable
                }  // container remote-loopback
    
                container mib-retrieval {
                  presence
                    "Indicates a mib-retrieval node is configured.";
                  description
                    "MIB retrieval support";
                  container disable {
                    presence
                      "Indicates a detection node is configured.";
                    description
                      "Disable MIB retrieval support";
                  }  // container disable
                }  // container mib-retrieval
    
                container uni-directional {
                  description
                    "Uni-directional link-fault detection support";
                  container link-fault {
                    description
                      "Uni-directional link-fault detection support";
                    container detection {
                      presence
                        "Indicates a detection node is configured.";
                      description
                        "Uni-directional link-fault detection support";
                      container disable {
                        presence
                          "Indicates a detection node is configured.";
                        description
                          "Disable uni-directional link-fault detection support";
                      }  // container disable
                    }  // container detection
                  }  // container link-fault
                }  // container uni-directional
    
                container connection {
                  description
                    "OAM connection configuration";
                  leaf timeout {
                    type uint32 {
                      range "2..30";
                    }
                    description
                      "OAM connection session timeout period";
                  }
                }  // container connection
    
                container require-remote {
                  description
                    "Enter require-remote submode";
                  container mib-retrieval {
                    presence
                      "Indicates a mib-retrieval node is configured.";
                    description
                      "Requirement of MIB retrieval support";
                    container disable {
                      presence
                        "Indicates a detection node is configured.";
                      description
                        "Disable the requirement of MIB retrieval support";
                    }  // container disable
                  }  // container mib-retrieval
    
                  container remote-loopback {
                    presence
                      "Indicates a remote-loopback node is configured.";
                    description
                      "Requirement of Remote loopback support";
                    container disable {
                      presence
                        "Indicates a detection node is configured.";
                      description
                        "Disable the requirement of remote loopback support";
                    }  // container disable
                  }  // container remote-loopback
    
                  container link-monitoring {
                    presence
                      "Indicates a link-monitoring node is configured.";
                    description
                      "Requirement of Link monitoring support";
                    container disable {
                      presence
                        "Indicates a detection node is configured.";
                      description
                        "Disable the requirement of link monitoring support";
                    }  // container disable
                  }  // container link-monitoring
    
                  container mode {
                    description
                      "Requirement of a specific OAM mode";
                    container passive {
                      must
                        "not(../active or ../disabled)";
                      presence
                        "Indicates a passive node is configured.";
                      description
                        "Require passive mode";
                    }  // container passive
    
                    container active {
                      must
                        "not(../passive or ../disabled)";
                      presence
                        "Indicates a active node is configured.";
                      description
                        "Require active mode";
                    }  // container active
    
                    container disabled {
                      must
                        "not(../passive or ../active)";
                      presence
                        "Indicates a disabled node is configured.";
                      description
                        "Disable the requirement of a specific mode";
                    }  // container disabled
                  }  // container mode
                }  // container require-remote
    
                container action {
                  description
                    "Enter action submode";
                  container critical-event {
                    description
                      "Action to perform when a critical event occurs";
                    container error-disable-interface {
                      must
                        "not(../log or ../disable)";
                      presence
                        "Indicates a error-disable-interface node is configured.";
                      description
                        "Error-disable the interface";
                    }  // container error-disable-interface
    
                    container log {
                      must
                        "not(../error-disable-interface or ../disable)";
                      presence
                        "Indicates a log node is configured.";
                      description
                        "Log the event";
                    }  // container log
    
                    container disable {
                      must
                        "not(../error-disable-interface or ../log)";
                      presence
                        "Indicates a disable node is configured.";
                      description
                        "Perform no action";
                    }  // container disable
                  }  // container critical-event
    
                  container dying-gasp {
                    description
                      "Action to perform when a dying gasp occurs";
                    container error-disable-interface {
                      must
                        "not(../log or ../disable)";
                      presence
                        "Indicates a error-disable-interface node is configured.";
                      description
                        "Error-disable the interface";
                    }  // container error-disable-interface
    
                    container log {
                      must
                        "not(../error-disable-interface or ../disable)";
                      presence
                        "Indicates a log node is configured.";
                      description
                        "Log the event";
                    }  // container log
    
                    container disable {
                      must
                        "not(../error-disable-interface or ../log)";
                      presence
                        "Indicates a disable node is configured.";
                      description
                        "Perform no action";
                    }  // container disable
                  }  // container dying-gasp
    
                  container uni-directional {
                    description
                      "Action to perform when a uni-directional link-fault message is received";
                    container link-fault {
                      description
                        "Action to perform when a uni-directional link-fault message is received";
                      container error-disable-interface {
                        must
                          "not(../efd or ../log
                         or ../disable)";
                        presence
                          "Indicates a error-disable-interface node is configured.";
                        description
                          "Error-disable the interface";
                      }  // container error-disable-interface
    
                      container efd {
                        must
                          "not(../error-disable-interface or ../log
                         or ../disable)";
                        presence
                          "Indicates a efd node is configured.";
                        description
                          "Bring down the interface using EFD";
                      }  // container efd
    
                      container log {
                        must
                          "not(../error-disable-interface or ../efd
                         or ../disable)";
                        presence
                          "Indicates a log node is configured.";
                        description
                          "Log the event";
                      }  // container log
    
                      container disable {
                        must
                          "not(../error-disable-interface or ../efd
                         or ../log)";
                        presence
                          "Indicates a disable node is configured.";
                        description
                          "Perform no action";
                      }  // container disable
                    }  // container link-fault
                  }  // container uni-directional
    
                  container capabilities-conflict {
                    description
                      "Action to perform when a capabilities conflict occurs";
                    container error-disable-interface {
                      must
                        "not(../efd or ../log
                       or ../disable)";
                      presence
                        "Indicates a error-disable-interface node is configured.";
                      description
                        "Error-disable the interface";
                    }  // container error-disable-interface
    
                    container efd {
                      must
                        "not(../error-disable-interface or ../log
                       or ../disable)";
                      presence
                        "Indicates a efd node is configured.";
                      description
                        "Enable EFD to bring down the interface";
                    }  // container efd
    
                    container log {
                      must
                        "not(../error-disable-interface or ../efd
                       or ../disable)";
                      presence
                        "Indicates a log node is configured.";
                      description
                        "Log the event";
                    }  // container log
    
                    container disable {
                      must
                        "not(../error-disable-interface or ../efd
                       or ../log)";
                      presence
                        "Indicates a disable node is configured.";
                      description
                        "Perform no action";
                    }  // container disable
                  }  // container capabilities-conflict
    
                  container wiring-conflict {
                    description
                      "Action to perform when a wiring conflict occurs";
                    container efd {
                      must
                        "not(../error-disable-interface or ../log
                       or ../disable)";
                      presence
                        "Indicates a efd node is configured.";
                      description
                        "Enable EFD to bring down the interface";
                    }  // container efd
    
                    container error-disable-interface {
                      must
                        "not(../efd or ../log
                       or ../disable)";
                      presence
                        "Indicates a error-disable-interface node is configured.";
                      description
                        "Error-disable the interface";
                    }  // container error-disable-interface
    
                    container log {
                      must
                        "not(../efd or ../error-disable-interface
                       or ../disable)";
                      presence
                        "Indicates a log node is configured.";
                      description
                        "Log the event";
                    }  // container log
    
                    container disable {
                      must
                        "not(../efd or ../error-disable-interface
                       or ../log)";
                      presence
                        "Indicates a disable node is configured.";
                      description
                        "Perform no action";
                    }  // container disable
                  }  // container wiring-conflict
    
                  container discovery-timeout {
                    description
                      "Action to perform when discovery timeout occurs";
                    container error-disable-interface {
                      must
                        "not(../efd or ../log
                       or ../disable)";
                      presence
                        "Indicates a error-disable-interface node is configured.";
                      description
                        "Error-disable the interface";
                    }  // container error-disable-interface
    
                    container efd {
                      must
                        "not(../error-disable-interface or ../log
                       or ../disable)";
                      presence
                        "Indicates a efd node is configured.";
                      description
                        "Enable EFD to bring down the interface";
                    }  // container efd
    
                    container log {
                      must
                        "not(../error-disable-interface or ../efd
                       or ../disable)";
                      presence
                        "Indicates a log node is configured.";
                      description
                        "Log the event";
                    }  // container log
    
                    container disable {
                      must
                        "not(../error-disable-interface or ../efd
                       or ../log)";
                      presence
                        "Indicates a disable node is configured.";
                      description
                        "Perform no action";
                    }  // container disable
                  }  // container discovery-timeout
    
                  container high-threshold {
                    description
                      "Action to perform when a high-threshold is crossed";
                    container error-disable-interface {
                      must
                        "not(../log or ../disable)";
                      presence
                        "Indicates a error-disable-interface node is configured.";
                      description
                        "disable the interface";
                    }  // container error-disable-interface
    
                    container log {
                      must
                        "not(../error-disable-interface or ../disable)";
                      presence
                        "Indicates a log node is configured.";
                      description
                        "Log the event";
                    }  // container log
    
                    container disable {
                      must
                        "not(../error-disable-interface or ../log)";
                      presence
                        "Indicates a disable node is configured.";
                      description
                        "Perform no action";
                    }  // container disable
                  }  // container high-threshold
    
                  container remote-loopback {
                    description
                      "Action to perform when a remote loopback event occurs";
                    container log {
                      must "not(../disable)";
                      presence
                        "Indicates a log node is configured.";
                      description
                        "Log the event";
                    }  // container log
    
                    container disable {
                      must "not(../log)";
                      presence
                        "Indicates a disable node is configured.";
                      description
                        "Perform no action";
                    }  // container disable
                  }  // container remote-loopback
    
                  container session-up {
                    description
                      "Action to perform when a session comes up";
                    container log {
                      must "not(../disable)";
                      presence
                        "Indicates a log node is configured.";
                      description
                        "Log the event";
                    }  // container log
    
                    container disable {
                      must "not(../log)";
                      presence
                        "Indicates a disable node is configured.";
                      description
                        "Perform no action";
                    }  // container disable
                  }  // container session-up
    
                  container session-down {
                    description
                      "Action to perform when a session goes down";
                    container error-disable-interface {
                      must
                        "not(../efd or ../log
                       or ../disable)";
                      presence
                        "Indicates a error-disable-interface node is configured.";
                      description
                        "Error-disable the interface";
                    }  // container error-disable-interface
    
                    container efd {
                      must
                        "not(../error-disable-interface or ../log
                       or ../disable)";
                      presence
                        "Indicates a efd node is configured.";
                      description
                        "Enable EFD to bring down the interface";
                    }  // container efd
    
                    container log {
                      must
                        "not(../error-disable-interface or ../efd
                       or ../disable)";
                      presence
                        "Indicates a log node is configured.";
                      description
                        "Log the event";
                    }  // container log
    
                    container disable {
                      must
                        "not(../error-disable-interface or ../efd
                       or ../log)";
                      presence
                        "Indicates a disable node is configured.";
                      description
                        "Perform no action";
                    }  // container disable
                  }  // container session-down
                }  // container action
              }  // list profile
            }  // container profiles
          }  // container oam
        }  // container ethernet
      }  // module Cisco-IOS-XR-um-ethernet-oam-cfg
    

© 2023 YumaWorks, Inc. All rights reserved.