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";
            }
          }
        }
    
        grouping pm-id {
          leaf pm-name {
            type pm-identity;
          }
    
          leaf pm-location {
            type pm-location;
          }
    
          leaf pm-direction {
            type pm-direction;
          }
        }  // grouping pm-id
    
        grouping pm-data-type {
          container data-type {
            leaf type {
              type string {
                pattern "uint64|int64|decimal64";
              }
            }
    
            leaf fraction-digits {
              when "../type = 'decimal64'";
              type uint8 {
                range "2 | 17";
              }
            }
          }  // container data-type
        }  // grouping pm-data-type
    
        grouping pm-th-metered {
          container pm-th-metered {
            when "../pm-type = 'metered'";
            leaf pm-th-type {
              type enumeration {
                enum "auto" {
                  value 0;
                  description
                    "HW autoprovisioned";
                }
                enum "user" {
                  value 1;
                  description "User-provisioned";
                }
              }
              default "auto";
            }
    
            leaf pm-th-low {
              when "../pm-th-type = 'user'";
              type pm-data-type;
              mandatory true;
            }
    
            leaf pm-th-high {
              when "../pm-th-type = 'user'";
              type pm-data-type;
              mandatory true;
            }
          }  // container pm-th-metered
        }  // grouping pm-th-metered
    
        grouping pm-th-binned {
          container pm-th-binned {
            when "../pm-type = 'binned'";
            list pm-time-periods {
              key "pm-time-period";
              leaf pm-time-period {
                type pm-time-period;
              }
    
              leaf pm-value {
                type pm-data-type;
                mandatory true;
              }
            }  // list pm-time-periods
          }  // container pm-th-binned
        }  // grouping pm-th-binned
    
        grouping pm-threshold {
          list pm-threshold {
            key "pm-name pm-location pm-direction";
            description
              "List of PMs thresholds for the parent entity.";
            uses pm-id;
    
            leaf pm-type {
              type pm-type;
            }
    
            uses pm-th-metered;
    
            uses pm-th-binned;
          }  // list pm-threshold
        }  // grouping pm-threshold
    
        grouping pm-oper-data-record {
          uses pm-id;
    
          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
        }  // grouping pm-oper-data-record
    
        grouping pm-oper-data {
          list pm-oper-data {
            key "pm-name pm-location pm-direction";
            config false;
            ordered-by user;
            uses pm-oper-data-record;
          }  // list pm-oper-data
        }  // grouping pm-oper-data
    
        grouping pm-oper-range-record {
          uses pm-id;
    
          leaf pm-alarm-low {
            type pm-data-type;
            description "PM Alarm Detect Low";
          }
    
          leaf pm-alarm-high {
            type pm-data-type;
            description "PM Alarm Detect High";
          }
    
          leaf pm-capability-min {
            type pm-data-type;
            description "PM Operating Range Low";
          }
    
          leaf pm-capability-max {
            type pm-data-type;
            description
              "PM Operating Range High";
          }
    
          leaf pm-warning-low {
            type pm-data-type;
            description "PM Threshold Low";
          }
    
          leaf pm-warning-high {
            type pm-data-type;
            description "PM Threshold High";
          }
        }  // grouping pm-oper-range-record
    
        grouping pm-oper-range {
          list pm-oper-range {
            key "pm-name pm-location pm-direction";
            config false;
            ordered-by user;
            uses pm-oper-range-record;
          }  // list pm-oper-range
        }  // grouping pm-oper-range
    
        grouping pm-info {
          container pm {
            description
              "Performance Monitoring Info";
            uses pm-threshold;
    
            uses pm-oper-range;
          }  // container pm
        }  // grouping pm-info
    
        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";
            }
    
            uses 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";
              }
    
              uses 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";
                }
    
                uses 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";
                  }
    
                  uses 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";
                    }
    
                    uses 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";
            }
    
            uses 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.";
          uses notifications:common-event-parameters;
    
          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.