etsi-nfv-vnf.yang 89.1 KB
Newer Older
              "GS NFV IFA011: Section 7.1.5.5
               ScaleVnfToLevelOpConfig information element";
          leaf arbitrary-target-levels-supported {
            type boolean;
            default "false";
            description
              "Signals whether scaling according to the parameter
               'scaleInfo' is supported by this VNF.";
              "GS NFV IFA011: Section 7.1.5.5
               ScaleVnfToLevelOpConfig information element";
        container heal-vnf-op-config {
          description
            "This information element defines attributes that
             affect the invocation of the HealVnf operation.";
          reference
            "GS NFV IFA011: Section 7.1.5.2
             VnfLcmOperationsConfiguration information element";

          list parameter {
            key "key";

            leaf key {
              type string;
            }

            leaf value {
              type string;
            }
            description
              "Array of KVP requirements for VNF-specific parameters
               to be passed when invoking the HealVnf operation.";
              "GS NFV IFA011: Section 7.1.5.6 HealVnfOpConfig
               information element";
          leaf-list cause {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            type string;
            description
              "Supported 'cause' parameter values.";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            reference
              "GS NFV IFA011: Section 7.1.5.6 HealVnfOpConfig
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
               information element";
          }
        container terminate-vnf-op-config {
          description
            "This information element defines attributes that
             affect the invocation of the TerminateVnf operation.";
          reference
            "GS NFV IFA011: Section 7.1.5.2
             VnfLcmOperationsConfiguration information element";

          leaf min-graceful-termination {
            type yang:timeticks;
            default "1";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            description
              "Minimum timeout value for graceful termination of
               a VNF instance.";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            reference
              "GS NFV IFA011: Section 7.1.5.7
               TerminateVnfOpConfig information element";
          leaf max-recommended-graceful-termination {
            type yang:timeticks;
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            description
              "Maximum recommended timeout value that can be needed
               to gracefully terminate a VNF instance of a
               particular type under certain conditions, such as
               maximum load condition. This is provided by VNF
               provider as information for the operator
               facilitating the selection of optimal timeout value.
               This value is not used as constraint.";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            reference
              "GS NFV IFA011: Section 7.1.5.7
               TerminateVnfOpConfig information element";
          list parameter {
            key "key";
            leaf key {
              type string;
            }
            leaf value {
              type string;
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            }
            description
              "Array of KVP requirements for VNF-specific parameters
               to be passed when invoking the TerminateVnf
               operation.";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            reference
              "GS NFV IFA011: Section 7.1.5.7
               TerminateVnfOpConfig information element";
        container operate-vnf-op-config {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
          description
            "This information element defines attributes that
             affect the invocation of the OperateVnf operation.";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
          reference
            "GS NFV IFA011: Section 7.1.5.2
             VnfLcmOperationsConfiguration information element";
          leaf min-graceful-stop-timeout {
            type yang:timeticks;
            default "1";
            description
              "Minimum timeout value for graceful stop of a VNF
               instance.";
            reference
              "GS NFV IFA011: Section 7.1.5.8
               OperateVnfOpConfig information element";
          }
          leaf max-recommended-graceful-stop-timeout {
            type yang:timeticks;
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            description
              "Maximum recommended timeout value that can be
               needed to gracefully stop a VNF instance of a
               particular type under certain conditions, such as
               maximum load condition. This is provided by VNF
               provider as information for the operator facilitating
               the selection of optimal timeout value. This value
               is not used as constraint.";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            reference
              "GS NFV IFA011: Section 7.1.5.8
               OperateVnfOpConfig information element";
          list parameter {
            key "key";
            leaf key {
              type string;
            }
            leaf value {
              type string;
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            }
            description
              "Array of KVP requirements for VNF-specific parameters
               to be passed when invoking the OperateVnf
               operation.";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            reference
              "GS NFV IFA011: Section 7.1.5.8
               OperateVnfOpConfig information element";
        container change-vnf-flavour-op-config {
          list parameter {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            key "key";
            leaf key {
              type string;
            }
            leaf value {
              type string;
            }
            description
              "Array of KVP requirements for VNF-specific parameters
               to be passed when invoking the OperateVnf
               operation.";
            reference
              "GS NFV IFA011: Section 7.1.5.9
               ChangeVnfFlavour information element";
          }
          description
            "Configuration parameters for the ChangeVnfFlavour
             operation.";
          reference
            "GS NFV IFA011: Section 7.1.5.2
             VnfLcmOperationsConfiguration information element";
        }
        container change-ext-vnf-connectivity-op-config {
          list parameter {
            key "key";
            leaf key {
              type string;
            }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            leaf value {
              type string;
            }
            description
              "Array of KVP requirements for VNF-specific parameters
               to be passed when invoking the
               ChangeExtVnfConnectivity operation.";
            reference
              "GS NFV IFA011: Section 7.1.5.10
               ChangeExtVnfConnectivityOpConfig information
               element";
          description
            "Configuration parameters for the
             ChangeExtVnfConnectivity operation.";
          reference
            "GS NFV IFA011: Section 7.1.5.2
             VnfLcmOperationsConfiguration information element";
        }
      }

      list affinity-or-anti-affinity-group {
        key "id";
        description
          "The AffinityOrAntiAffinityGroup describes the affinity
           or anti-affinity relationship applicable between the
           virtualization containers to be created based on
           different VDUs, or between internal VLs to be created
           based on different VnfVirtualLinkDesc(s).

           Per VNF, the affinity/anti-affinity rules defined using
           this information element, using the
           LocalAffinityOrAntiAffinityRule information element, and
           using the placement constraints in the
           GrantLifecycleOperation as defined in ETSI GS NFV-IFA
           007 [i.3] should be conflict-free. In case of conflicts,
           the placement constraints in the
           GrantLifecycleOperation shall take precedence.";

        reference
          "GS NFV IFA011: Section 7.1.8.2 VnfDf information
           element";
        leaf id {
          type string;
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
          description
            "Identifies an affinity or anti-affinity group to which
             the affinity or anti-affinity rule applies.";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
          reference
            "GS NFV IFA011: Section 7.1.8.12
             AffinityOrAntiAffinityGroup information element";
        leaf type {
          mandatory true;
          type affinity-type;
          description
            "Specifies whether the rule is an affinity rule or an
             anti-affinity rule.";
          reference
            "GS NFV IFA011: Section 7.1.8.12
             AffinityOrAntiAffinityGroup information element";
        }
        leaf scope {
          mandatory true;
          type affinity-scope;
          description
            "Specifies the scope of the rule, possible values are
             'NFVI-PoP', 'Zone', 'ZoneGroup', 'NFVI-node'.";
            "GS NFV IFA011: Section 7.1.8.12
             AffinityOrAntiAffinityGroup information element";
        }
      }
      list indicator {
        key "id";

        leaf id {
          type string;
          description
            "Unique identifier.";
          reference
            "GS NFV IFA011: Section 7.1.11.2 VnfIndicator
             information element";
        leaf name {
          type string;
          description
            "The human readable name of the VnfIndicator.";
          reference
            "GS NFV IFA011: Section 7.1.11.2 VnfIndicator
             information element";
        }

        leaf indicator-value {
          type string;
          description
            "Defines the allowed values or value ranges of this
             indicator.";
          reference
            "GS NFV IFA011: Section 7.1.11.2 VnfIndicator
             information element";
        }
        leaf source {
          type enumeration {
            enum vnf;
            enum em;
            enum both;
          }
          description
            "Describe the source of the indicator. The possible
             values are:
             • VNF.
             • EM.
             • Both.

             This tells the consumer where to send the subscription
             request.";
            "GS NFV IFA011: Section 7.1.11.2 VnfIndicator
             information element";
        }

        description
          "Declares the VNF indicators that are supported by this
           VNF (specific to this DF).";
        reference
          "GS NFV IFA011: Section 7.1.8.2 VnfDf information
      list supported-vnf-interfaces {
        key "name";

        leaf name {
          type enumeration {
            enum vnf-configuration;
            enum vnf-indicator;
          }
          description
            "Identifies an interface produced by the VNF. Valid
             values:
             - VNF_CONFIGURATION
             - VNF_INDICATOR";
          reference
            "GS NFV IFA011: Section 7.1.8.16 VnfInterfaceDetails
             information element";
        }

        leaf-list cpd-id {
          type leafref {
            path "../../../ext-cpd/id";
          description
            "References one or more CPDs from which to instantiate
             external CPs through which interface endpoints on the
             VNF side can be reached by the VNFM.";
          reference
            "GS NFV IFA011: Section 7.1.8.16 VnfInterfaceDetails
             information element";
        }

        list interface-details {
          key "key";

          leaf key {
            type string;
          }
        }

        description
          "Indicates which interfaces the VNF produces and provides
           additional details on how to access the interface
           endpoints.";
        reference
          "GS NFV IFA011: Section 7.1.8.2 VnfDf information
             element";
      }

      list monitoring-parameter {
        key "id";

        description
          "Defines the virtualised resources monitoring parameters
           on VNF level.";
        reference
          "GS NFV IFA011: Section 7.1.8.2 VnfDf information
           element";

        leaf id {
          type string;
          description
            "Unique identifier of the monitoring parameter.";
          reference
            "GS NFV IFA011: Section 7.1.11.3 MonitoringParameter
             information element";
        }
        uses monitoring-parameter;
      }

      list scaling-aspect {
        key "id";

        description
          "The scaling aspects supported by this DF of the VNF.
           scalingAspect shall be present if the VNF supports
           scaling.";
        reference
          "GS NFV IFA011: Section 7.1.8.2 VnfDf information
           element";

        leaf id {
          type string;
          description
            "Unique identifier of this aspect in the VNFD.";
          reference
            "GS NFV IFA011: Section 7.1.10.2 ScalingAspect
               information element";
        }

        leaf name {
          type string;
          description
            "Human readable name of the aspect.";
          reference
            "GS NFV IFA011: Section 7.1.10.2 ScalingAspect
             information element";
        }

        leaf description {
          type string;
          description
            "Human readable description of the aspect.";
          reference
            "GS NFV IFA011: Section 7.1.10.2 ScalingAspect
             information element";
        }

        leaf max-scale-level {
          type uint32 {
            range "1..max";
          description
            "The maximum scaleLevel for total number of scaling
             steps that can be applied w.r.t. this aspect. The
             value of this attribute corresponds to the number of
             scaling steps can be applied to this aspect when
             scaling it from the minimum scale level (i.e. 0) to the
             maximum scale level defined by this attribute.";
          reference
            "GS NFV IFA011: Section 7.1.10.2 ScalingAspect
             information element";
        }

        container aspect-delta-details {
          list deltas {
            key "id";
            min-elements 1;

            leaf id {
              type string;
              description
                "Identifier of this scaling delta.";
              reference
                "GS NFV IFA011: Section 7.1.10.4 ScalingDelta
                 information element";
            list vdu-delta {
                type leafref {
                  path "../../../../../../vdu/id";
                }
                  "Uniquely identifies a VDU.";
                  "GS NFV IFA011: Section 7.1.8.9 VduLevel
              leaf number-of-instances {
                type uint32 {
                  range "0..max";
                  "Number of instances of VNFC based on this VDU to
                   deploy for an instantiation level or for a
                   scaling delta. Shall be zero or greater.";
                  "GS NFV IFA011: Section 7.1.8.9 VduLevel
                   information element";
              }
              description
                "The number of VNFC instances based on particular
                 VDUs to be created or removed.";
              reference
                "GS NFV IFA011: Section 7.1.10.4 ScalingDelta
                 information element";
            }

            list virtual-link-bit-rate-delta {
              key "id";
              leaf id {
                type string;
                description
                  "Uniquely identifies a VnfVirtualLinkDesc.";
                reference
                  "GS NFV IFA011: Section 7.1.10.5
                   VirtualLinkBitRateLevel information element";
              }
              container bit-rate-requirements {
                leaf root {
                  type uint32;
                  units bits/sec;
                  mandatory true;
                    "Throughput requirement of the link (e.g.
                     bitrate of E-Line, root bitrate of E-Tree,
                     aggregate capacity of E-LAN).";
                    "GS NFV IFA011: Section 7.1.8.6
                     LinkBitrateRequirements information element";
                leaf leaf {
                  type uint32;
                  units bits/sec;
                    "Throughput requirement of leaf connections to
                     the link when applicable to the connectivity
                     type (e.g. for E-Tree and E-LAN branches).";
                    "GS NFV IFA011: Section 7.1.8.6
                     LinkBitrateRequirements information element";
                  "Bitrate requirements for an instantiation level
                   or bitrate delta for a scaling step.";
                  "GS NFV IFA011: Section 7.1.10.5
                   VirtualLinkBitRateLevel information element";
                "The bitrate to be added or removed to virtual links
                 created from particular virtual link descriptors.";
                "GS NFV IFA011: Section 7.1.10.4 ScalingDelta
                 information element";
            }
            description
              "Declares different scaling deltas, each of which is
               applied for one or more scaling steps of this
               aspect.";
            reference
              "GS NFV IFA011: Section 7.1.10.3 AspectDeltaDetails
               information element";
          }
          leaf step-deltas {
            type leafref {
              path "../deltas/id";
              "Identifiers of the individual scaling deltas to be
               applied for the subsequent scaling steps of this
               aspect. The first entry in the array shall correspond
               to the first scaling step (between scale levels 0 to
               1) and the last entry in the array shall correspond
               to the last scaling step (between maxScaleLevel-1
               and maxScaleLevel).

               Each referenced scaling delta shall be declared in
               the 'deltas' attribute.";
              "GS NFV IFA011: Section 7.1.10.3 AspectDeltaDetails
               information element";
          }
          description
            "A specification of the deltas in terms of number of
             instances of VNFCs and virtual link bit rates that
             correspond to the scaling steps of this aspect. A
             cardinality of zero indicates that this mapping has to
             be specified in a lifecycle management script or be
             otherwise known to the VNFM. The information in this
             attribute, if provided, shall be consistent with the
             information provided in the 'InstantiationLevel'
             information element. If this attribute is provided, it
             shall be provided for all scaling aspects.";
          reference
            "GS NFV IFA011: Section 7.1.10.2 ScalingAspect
             information element";
    }

    container configurable-properties {
      description
        "Describes the configurable properties of the VNF
         (e.g. related to auto scaling and auto healing).";
      reference
        "GS NFV IFA011: Section 7.1.2 VNFD information element";
      leaf is-auto-scalable-enabled {
        type boolean;
        description
          "It permits to enable (TRUE) / disable (FALSE) the
           auto-scaling functionality.";
          "GS NFV IFA011: Section 7.1.12 VnfConfigurableProperties
           information element";
      }
      leaf is-auto-heal-enabled {
        type boolean;
        description
          "It permits to enable (TRUE) / disable (FALSE) the
           auto-healing functionality.";
        reference
          "GS NFV IFA011: Section 7.1.12 VnfConfigurableProperties
           information element";
      }
      list additional-configurable-property {
        key "key";

        leaf key {
          type string;
        leaf value {
          type string;
        description
          "It provides VNF specific configurable properties that can
           be modified using the ModifyVnfConfiguration operation.";
        reference
          "GS NFV IFA011: Section 7.1.12 VnfConfigurableProperties
           information element";
    }

    container modifiable-attributes {
      description
        "Describes the modifiable attributes of the VNF.";
      reference
        "GS NFV IFA011: Section 7.1.2 VNFD information element";
      leaf-list extension {
        type string;
        description
          "Additional VNF-specific attributes of VnfInfo that
           affect the lifecycle management of a VNF instance and
           that are writeable.

           For each VNF instance, these attributes are stored
           persistently by the VNFM and can be queried and
           modified through the VNFM.

           These attributes are intended to be consumed by the
           VNFM or by the lifecycle management scripts during the
           execution of VNF lifecycle management operations.

           Modifying these values has no direct effect on the VNF
           instance; however, modified values can be considered
           during subsequent VNF lifecycle management operations,
           which means that the modified values can indirectly
           affect the configuration of the VNF instance.";
          "GS NFV IFA011: Section 7.1.14 VnfInfoModifiableAttributes
           information element";
      }
      leaf-list metadata {
        type string;
        description
          "Additional VNF-specific attributes of VnfInfo that are
           writeable and that provide metadata describing the VNF
           instance.

           For each VNF instance, these attributes are stored
           persistently by the VNFM and can be queried and modified
           through the VNFM.

           These attributes are intended to provide information to
           functional blocks external to the VNFM and will not be
           used by the VNFM or the VNF lifecycle management
           scripts when executing lifecycle management operations.

           Modifying these attributes has no effect on the VNF
           instance. It only affects the attribute values stored by
           the VNFM.";
        reference
          "GS NFV IFA011: Section 7.1.14 VnfInfoModifiableAttributes
           information element";
      }
    }
    list lifecycle-management-script {
      key "id";
      description
        "Includes a list of events and corresponding management
         scripts performed for the VNF.";
      reference
        "GS NFV IFA011: Section 7.1.2 VNFD information element";
      leaf id {
        type string;
        description
          "A unique string that identfies the script in question.";
      }
      leaf-list event {
        type internal-lifecycle-management-script-event;
        description
          "Describes VNF lifecycle event(s) or an external stimulus
           detected on a VNFM reference point.";
        reference
          "GS NFV IFA011: Section 7.1.13 LifeCycleManagementScript
           information element";
      }
      leaf-list lcm-transition-event {
        type string;
        description
          "Describes the transition VNF lifecycle event(s) that
           cannot be mapped to any of the enumerated values
           defined for the event attribute.";
        reference
          "GS NFV IFA011: Section 7.1.13 LifeCycleManagementScript
           information element";
      }
      leaf script {
        type string;
        description
          "Includes a VNF LCM script (e.g. written in a DSL as
           specified in requirement VNF_PACK.LCM.001) triggered to
           react to one of the events listed in the event
           attribute.";
        reference
          "GS NFV IFA011: Section 7.1.13 LifeCycleManagementScript
           information element";
      leaf script-dsl {
        type string;
        description
          "Defines the domain specific language (i.e. the type) of
           script that is provided. Types of scripts could include
           bash, python, etc.";
          "GS NFV IFA011: Section 7.1.13 LifeCycleManagementScript
           information element";
      }
      list script-input {
        key "key";
        leaf key {
          type string;
          description
            "Includes a VNF LCM script (e.g. written in a DSL as
             specified in requirement VNF_PACK.LCM.001) triggered to
             react to one of the events listed in the event
             attribute.

             The string value specified here is a path to a file in
             the VNF package.";
          reference
            "GS NFV IFA011: Section 7.1.13 LifeCycleManagementScript
             information element";
        }
        description
          "Array of KVP requirements with the key as the parameter
           name and the value as the parameter that need to be
           passed as an input to the script.";
        reference
          "GS NFV IFA011: Section 7.1.13 LifeCycleManagementScript
           information element";
    list element-group {
      key "id";
      description
        "Describes the associated elements of a VNFD for a certain
         purpose during VNF lifecycle management.";
      reference
        "GS NFV IFA011: Section 7.1.2 VNFD information element";

      leaf id {
        type string;
        description
          "Unique identifier of this group in the VNFD.";
          "GS NFV IFA011: Section 7.1.4 VnfdElementGroup
           information element";
      }
      leaf description {
        type string;
        description
          "Human readable description of the group.";
        reference
          "GS NFV IFA011: Section 7.1.4 VnfdElementGroup
           information element";
      }

      leaf-list vdu {
        type leafref {
          path "../../vdu/id";
        description
          "References to Vdus that are part of this group.";
        reference
          "GS NFV IFA011: Section 7.1.4 VnfdElementGroup
           information element";
      }

      leaf-list virtual-link-desc {
        type leafref {
          path "../../int-virtual-link-desc/id";
        description
          "References to VnfVirtualLinkDesc that are part of this
           group.";
        reference
          "GS NFV IFA011: Section 7.1.4 VnfdElementGroup
           information element";
    list indicator {
      key "id";
      description
        "Declares the VNF indicators that are supported by this
         VNF.";
      reference
        "GS NFV IFA011: Section 7.1.2 VNFD information element";

      leaf id {
        type string;
        description
          "Unique identifier";
          "GS NFV IFA011: Section 7.1.11.2 VnfdIndicator
           information element";
      }
      leaf name {
        type string;
        description
          "The human readable name of the VnfIndicator.";
        reference
          "GS NFV IFA011: Section 7.1.11.2 VnfdIndicator
           information element";
      leaf-list indicator-value {
        type string;
        description
          "Defines the allowed values or value ranges of this
           indicator.";
        reference
          "GS NFV IFA011: Section 7.1.11.2 VnfdIndicator
           information element";
      }

      leaf source {
        type enumeration {
          enum "vnf";
          enum "em";
          enum "both";
        }
        description
          "Describe the source of the indicator. The possible values
           are:
           • VNF.
           • EM.
           • Both.
           This tells the consumer where to send the subscription
           request.";
          "GS NFV IFA011: Section 7.1.11.2 VnfdIndicator
           information element";

    leaf-list auto-scale {
      type string;
      description
        "Rule that determines when a scaling action needs to be
         triggered on a VNF instance e.g. based on certain VNF
         indicator values or VNF indicator value changes or a
         combination of VNF indicator value(s) and monitoring
         parameter(s).";
      reference
        "GS NFV IFA011: Section 7.1.2 VNFD information element";
    }