fujitsu-performance-monitoring-typedefs

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

  • Version: 2018-01-11

    fujitsu-performance-monitoring-typedefs@2018-01-11


    
      module fujitsu-performance-monitoring-typedefs {
    
        yang-version 1;
    
        namespace
          "urn:fujitsu:params:xml:ns:yang:perfmon-typedefs";
    
        prefix pmtypedefs;
    
        import ietf-yang-types {
          prefix yang;
        }
    
        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 type definitions for
    Performance Monitoring management.
    
    Copyright (c) 2017 Fujitsu Ltd.
    All rights reserved. ";
    
        revision "2018-01-11" {
          description "Added pm-pg-type.";
        }
    
        revision "2017-02-08" {
          description "Initial revision.";
        }
    
    
        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 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";
            }
          }
        }
    
        typedef pm-pg-type {
          type enumeration {
            enum "sncp" {
              value 0;
              description "SNCP PG type";
            }
          }
          description "PM protection group type";
        }
    
        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
      }  // module fujitsu-performance-monitoring-typedefs
    

© 2023 YumaWorks, Inc. All rights reserved.