fujitsu-performance-monitoring

This module contains a collection of YANG definitions for Performance Monitoring management. Copyright (c) 2015 Fujitsu Ltd. Al...

  • Version: 2016-12-07

    fujitsu-performance-monitoring@2016-12-07


    
      module fujitsu-performance-monitoring {
    
        yang-version 1;
    
        namespace
          "urn:fujitsu:params:xml:ns:yang:perfmon";
    
        prefix perfmon;
    
        import ietf-yang-types {
          prefix yang;
        }
        import fujitsu-notifications {
          prefix notifications;
        }
    
        organization "Fujitsu Ltd.";
    
        contact
          "Fujitsu Ltd.
         
         Address: 2801 Telecom Parkway
                  Richardson, Texas 75082
         
         Tel: +1-800-USE-FTAC (1-800-873-3822)
         Email: ftac@fnc.fujitsu.com
         Web: www.fujitsu.com/us/services/telecom";
    
        description
          "This module contains a collection of YANG definitions for
         Performance Monitoring management.
         
         Copyright (c) 2015 Fujitsu Ltd.
         All rights reserved. ";
    
        revision "2015-05-07" {
          description "Initial revision.";
        }
    
        revision "2016-12-07" {
          description
            "Corrected pm-validity description.";
        }
    
    
        identity performance-monitor-identity {
          description
            "Base identity for PM types. A unique identification of the PM
             identifier, not including the resource. A string-based qualifier
             can be used in addition to the identity in order to have different
             PM types based on information not known at design-time. Standards
             and vendors can define sub-identities to clearly identify specific
             PM types.";
        }
    
        typedef pm-identity {
          type identityref {
            base perfmon:performance-monitor-identity;
          }
          description "PM name";
        }
    
        typedef pm-location {
          type enumeration {
            enum "nearEnd" {
              value 0;
              description "Near-end location";
            }
            enum "farEnd" {
              value 1;
              description "Far-end location";
            }
          }
          description "PM location";
        }
    
        typedef pm-direction {
          type enumeration {
            enum "transmit" {
              value 0;
              description "Transmit direction";
            }
            enum "receive" {
              value 1;
              description "Receive direction";
            }
            enum "na" {
              value 2;
              description
                "Direction not applicable";
            }
          }
          description "PM direction";
        }
    
        typedef pm-type {
          type enumeration {
            enum "cumulative" {
              value 0;
              description "Cumulative PM type";
            }
            enum "metered" {
              value 1;
              description "Metered PM type";
            }
            enum "binned" {
              value 2;
              description "Binned PM type";
            }
          }
          description "PM type";
        }
    
        typedef pm-data-type {
          type union {
            type uint64;
            type int64;
            type decimal64 {
              fraction-digits 2;
            }
            type decimal64 {
              fraction-digits 17;
            }
          }
        }
    
        typedef pm-time-period {
          type enumeration {
            enum "cumulative" {
              value 0;
              description "cumulative";
            }
            enum "15-min" {
              value 1;
              description "15 minutes period";
            }
            enum "1-day" {
              value 2;
              description "1 day period";
            }
            enum "1-week" {
              value 3;
              description "1 week period";
            }
            enum "1-month" {
              value 4;
              description "1 month period";
            }
          }
        }
    
        typedef pm-validity {
          type enumeration {
            enum "false" {
              value 0;
              description "PM is not valid";
            }
            enum "true" {
              value 1;
              description "PM is valid";
            }
          }
        }
    
        typedef pm-index {
          type uint32;
          description "Index for PM history";
        }
    
        typedef pm-history {
          type enumeration {
            enum "current" {
              value 0;
              description
                "Current PM time-period";
            }
            enum "all" {
              value 1;
              description
                "All PM time-periods including current";
            }
          }
        }
    
        container pm-equipment {
          config false;
          description
            "Top container for all equipment performance monitoring entities.";
          list shelf {
            key "shelfId";
            description
              "List of shelf entities to store performance monitoring operational data";
            leaf shelfId {
              type string;
              description "Shelf Identifier";
            }
    
            list pm-oper-data {
              key "pm-name pm-location pm-direction";
              config false;
              ordered-by user;
              leaf pm-name {
                type pm-identity;
              }
    
              leaf pm-location {
                type pm-location;
              }
    
              leaf pm-direction {
                type pm-direction;
              }
    
              leaf pm-type {
                type pm-type;
              }
    
              list pm-time-period-index {
                key "pm-time-period pm-index";
                ordered-by user;
                leaf pm-time-period {
                  type pm-time-period;
                }
    
                leaf pm-index {
                  type pm-index;
                }
    
                leaf pm-value {
                  type pm-data-type;
                  description "PM value";
                }
    
                leaf pm-validity {
                  type pm-validity;
                }
    
                leaf pm-start-time {
                  type yang:date-and-time;
                }
              }  // list pm-time-period-index
            }  // list pm-oper-data
    
            list slot {
              key "slotId";
              description
                "List of slot entities to store performance monitoring operational data";
              leaf slotId {
                type string;
                description "Slot Identifier";
              }
    
              list pm-oper-data {
                key "pm-name pm-location pm-direction";
                config false;
                ordered-by user;
                leaf pm-name {
                  type pm-identity;
                }
    
                leaf pm-location {
                  type pm-location;
                }
    
                leaf pm-direction {
                  type pm-direction;
                }
    
                leaf pm-type {
                  type pm-type;
                }
    
                list pm-time-period-index {
                  key "pm-time-period pm-index";
                  ordered-by user;
                  leaf pm-time-period {
                    type pm-time-period;
                  }
    
                  leaf pm-index {
                    type pm-index;
                  }
    
                  leaf pm-value {
                    type pm-data-type;
                    description "PM value";
                  }
    
                  leaf pm-validity {
                    type pm-validity;
                  }
    
                  leaf pm-start-time {
                    type yang:date-and-time;
                  }
                }  // list pm-time-period-index
              }  // list pm-oper-data
    
              list subslot {
                key "subslotId";
                description
                  "List of subslot entities to store performance monitoring operational data";
                leaf subslotId {
                  type string;
                  description
                    "Subslot Identifier";
                }
    
                list pm-oper-data {
                  key "pm-name pm-location pm-direction";
                  config false;
                  ordered-by user;
                  leaf pm-name {
                    type pm-identity;
                  }
    
                  leaf pm-location {
                    type pm-location;
                  }
    
                  leaf pm-direction {
                    type pm-direction;
                  }
    
                  leaf pm-type {
                    type pm-type;
                  }
    
                  list pm-time-period-index {
                    key "pm-time-period pm-index";
                    ordered-by user;
                    leaf pm-time-period {
                      type pm-time-period;
                    }
    
                    leaf pm-index {
                      type pm-index;
                    }
    
                    leaf pm-value {
                      type pm-data-type;
                      description "PM value";
                    }
    
                    leaf pm-validity {
                      type pm-validity;
                    }
    
                    leaf pm-start-time {
                      type yang:date-and-time;
                    }
                  }  // list pm-time-period-index
                }  // list pm-oper-data
    
                list port {
                  key "portId";
                  description
                    "List of port entities to store performance monitoring operational data";
                  leaf portId {
                    type string;
                    description
                      "Port Identifier";
                  }
    
                  list pm-oper-data {
                    key "pm-name pm-location pm-direction";
                    config false;
                    ordered-by user;
                    leaf pm-name {
                      type pm-identity;
                    }
    
                    leaf pm-location {
                      type pm-location;
                    }
    
                    leaf pm-direction {
                      type pm-direction;
                    }
    
                    leaf pm-type {
                      type pm-type;
                    }
    
                    list pm-time-period-index {
                      key "pm-time-period pm-index";
                      ordered-by user;
                      leaf pm-time-period {
                        type pm-time-period;
                      }
    
                      leaf pm-index {
                        type pm-index;
                      }
    
                      leaf pm-value {
                        type pm-data-type;
                        description "PM value";
                      }
    
                      leaf pm-validity {
                        type pm-validity;
                      }
    
                      leaf pm-start-time {
                        type yang:date-and-time;
                      }
                    }  // list pm-time-period-index
                  }  // list pm-oper-data
    
                  list subport {
                    key "subportId";
                    description
                      "List of subport entities to store performance monitoring operational data";
                    leaf subportId {
                      type string;
                      description
                        "Subport Identifier";
                    }
    
                    list pm-oper-data {
                      key "pm-name pm-location pm-direction";
                      config false;
                      ordered-by user;
                      leaf pm-name {
                        type pm-identity;
                      }
    
                      leaf pm-location {
                        type pm-location;
                      }
    
                      leaf pm-direction {
                        type pm-direction;
                      }
    
                      leaf pm-type {
                        type pm-type;
                      }
    
                      list pm-time-period-index {
                        key "pm-time-period pm-index";
                        ordered-by user;
                        leaf pm-time-period {
                          type pm-time-period;
                        }
    
                        leaf pm-index {
                          type pm-index;
                        }
    
                        leaf pm-value {
                          type pm-data-type;
                          description "PM value";
                        }
    
                        leaf pm-validity {
                          type pm-validity;
                        }
    
                        leaf pm-start-time {
                          type yang:date-and-time;
                        }
                      }  // list pm-time-period-index
                    }  // list pm-oper-data
                  }  // list subport
                }  // list port
              }  // list subslot
            }  // list slot
          }  // list shelf
        }  // container pm-equipment
    
        container pm-interfaces {
          config false;
          description
            "Top container for all interface performance monitoring entities.";
          list interface {
            key "name";
            description
              "List of interface entities to store performance monitoring operational data";
            leaf name {
              type string;
              description "Interface name";
            }
    
            list pm-oper-data {
              key "pm-name pm-location pm-direction";
              config false;
              ordered-by user;
              leaf pm-name {
                type pm-identity;
              }
    
              leaf pm-location {
                type pm-location;
              }
    
              leaf pm-direction {
                type pm-direction;
              }
    
              leaf pm-type {
                type pm-type;
              }
    
              list pm-time-period-index {
                key "pm-time-period pm-index";
                ordered-by user;
                leaf pm-time-period {
                  type pm-time-period;
                }
    
                leaf pm-index {
                  type pm-index;
                }
    
                leaf pm-value {
                  type pm-data-type;
                  description "PM value";
                }
    
                leaf pm-validity {
                  type pm-validity;
                }
    
                leaf pm-start-time {
                  type yang:date-and-time;
                }
              }  // list pm-time-period-index
            }  // list pm-oper-data
          }  // list interface
        }  // container pm-interfaces
    
        rpc init-pm {
          description
            "Command to initialize PM data";
          input {
            leaf id {
              type string;
              mandatory true;
              description "Entity Identifier";
            }
    
            leaf time-period {
              type pm-time-period;
              default "15-min";
            }
    
            leaf index {
              type pm-history;
              default "current";
            }
          }
    
          output {
            leaf status {
              type string;
            }
          }
        }  // rpc init-pm
    
        notification threshold-crossover-notification {
          description
            "This notification is used to report a threshold cross-over event.";
          leaf resource {
            type resource;
            mandatory true;
            description
              "The resource reporting the event.";
          }
    
          leaf event-type-id {
            type event-type-id;
            mandatory true;
            description
              "This leaf and the leaf 'event-type-qualifier' together
    provides a unique identification of the event type.";
          }
    
          leaf event-type-qualifier {
            type event-type-qualifier;
            description
              "This leaf is used when the 'event-type-id' leaf cannot
    uniquely identify the event type.
    Event's location and direction are included in this qualifier.
    Threshold crossover events would also include time-period";
          }
    
          leaf event-time {
            type yang:date-and-time;
            mandatory true;
            description
              "The time the event occurred.  The value represents the time
    the real event occurred in the resource and not when it was
    notified.";
          }
    
          leaf event-text {
            type event-text;
            mandatory true;
            description
              "A user friendly text describing the reason for event.";
          }
    
          leaf pm-value {
            type pm-data-type;
            mandatory true;
            description
              "Monitored performance value";
          }
    
          leaf pm-threshold-level {
            type pm-data-type;
            mandatory true;
            description
              "Performance monitor threshold level";
          }
        }  // notification threshold-crossover-notification
      }  // module fujitsu-performance-monitoring
    

© 2023 YumaWorks, Inc. All rights reserved.