etsi-nfv-vnf.yang 143 KB
Newer Older
        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 {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
        type union {
          type internal-lifecycle-management-script-event;
          type external-lifecycle-management-script-event;
        }
        description
          "Describes VNF lifecycle event(s) or an external stimulus
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
           detected on a VNFM reference point.

           If the event is of type 
           internal-lifecycle-management-script-event, then depending
           on whether the event is of type start-* or end-*, the
           script associated with the VNF LCM operation needs to be 
           executed before the event, or after the event,
           respectively.

           On the other hand, if the event is of type
           external-lifecycle-management-script-event, then the
           script associated with the event needs to be executed
           for the given VNF LCM operation.";
        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.

         Reason for deprecating this node - Information about which
         VDU and VLD are involved in scaling is better defined by
         ScalingDelta.";
      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 {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
          path "/nfv:nfv/nfv:vnfd/nfv:int-virtual-link-desc/nfv: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";
    }
      // IFA011ed332 defines the key as VersionSelector, which is
      // nothing but a combination of src-vnfd-id, dst-vnfd-id and
      // src-flavour-id. YANG cannot use a composite as a key, and
      // therefore the model breaks it out as three elements that
      // form the key.
      key "src-vnfd-id dst-vnfd-id src-flavour-id";

      leaf src-vnfd-id {
        type string;
        description
          "Identifier of the source VNFD and the source VNF
           package. Either the srcVnfdId or the dstVnfdId shall be
           equal to the vnfdId of the VNFD containing this version
           selector.";
        reference
          "GS NFV IFA011: Section 7.1.15.3 VersionSelector
           information element";
      }

      leaf dst-vnfd-id {
        type string;
        description
          "Identifier of the destination VNFD and the destination
           VNF package. Either the srcVnfdId or the dstVnfdId shall
           be equal to the vnfdId of the VNFD containing this version
           selector.";
        reference
          "GS NFV IFA011: Section 7.1.15.3 VersionSelector
           information element";
      }

      leaf src-flavour-id {
        type string;
        description
          "Identifier of the deployment flavour in the source VNF
           package for which this modification applies. It is up to
           protocol design stage to decide whether there is further
           optimization potential to apply one modification for
           multiple srcFlavourIds.";
        reference
          "GS NFV IFA011: Section 7.1.15.3 VersionSelector
           information element";
      }

      leaf additional-params-id {
        type leafref {
          path "../../df/lcm-operations-configuration/" +
               "change-current-vnf-package-op-config/id";
        }
        description
          "References the ChangeCurrentVnfPackageOpConfig information
           element that defines the valid additional parameters for
           the change.";
        reference
          "GS NFV IFA011: Section 7.1.15.2 VnfPackageChangeInfo
           information element";
      }

      leaf-list modification-qualifier {
        type enumeration {
          enum "up";
          enum "down";
          enum "vnf-upgrade";
          enum "vnf-update";
          enum "vnf-downgrade";
        }
        description
          "When present, it specifies the type of modification
           resulting from transitioning from srcVnfdId to dstVnfdId.
           • UP:indicating that the destination VNF version is newer
                  than the source version,
           • DOWN:indicating that the destination VNF version is
                    older than the source version.

           When provided, UP and DOWN values shall always be
           supported as the first value. In addition, a vendor may
           specify additional values and provide such values to
           qualify further the change between the two versions such
           as VNF_UPGRADE, VNF_UPDATE, VNF_DOWNGRADE, etc.";
        reference
          "GS NFV IFA011: Section 7.1.15.2 VnfPackageChangeInfo
           information element";
      }

      leaf-list additional-modification-description {
        type string;
        description
          "A VNF provider may define additional information to
           qualify further the change between the two versions,
           such as 'VNF upgrade', 'VNF update', 'VNF downgrade',
           etc.";
        reference
          "GS NFV IFA011: Section 7.1.15.2 VnfPackageChangeInfo
           information element";
      }

      list component-mapping {
        key "type";

        leaf type {
          type string;
          description
            "The type of component or property. Possible values
             differentiate whether changes concern to some VNF
             component (e.g., VDU, internal VLD, etc.) or property
             (e.g., a Scaling Aspect, etc.).";
          reference
            "GS NFV IFA011: Section 7.1.15.4 ComponentMapping
             information element";
        }

        leaf source-desc-id {
          type string;
          description
            "Identifier of the component or property in the source
             VNFD.";
          reference
            "GS NFV IFA011: Section 7.1.15.4 ComponentMapping
             information element";
        }

        leaf dst-desc-id {
          type string;
          description
            "Identifier of the component or property in the
             destination VNFD.";
          reference
            "GS NFV IFA011: Section 7.1.15.4 ComponentMapping
             information element";
        }

        leaf description {
          type string;
          description
            "Human readable description of the component changes.";
          reference
            "GS NFV IFA011: Section 7.1.15.4 ComponentMapping
             information element";
        }

        description
          "Mapping information related to identifiers of components in
           source VNFD and destination VNFD that concern to the change
           process.";
        reference
          "GS NFV IFA011: Section 7.1.15.2 VnfPackageChangeInfo
           information element";
      }

      leaf lcm-script-id {
        type leafref {
          path "../../lifecycle-management-script/id";
        }
        description
          "Reference to a lifecycle management script that is executed
           as part of this 'change current VNF Package' process.";
        reference
          "GS NFV IFA011: Section 7.1.15.2 VnfPackageChangeInfo
           information element";
      }

      leaf coordination-action-name {
          path "../../lcm-operations-coordination/coordination-action-name";
          "Reference to applicable VNF LCM operation coordination actions
           that can be invoked during a VNF package change as defined by
           the 'selector' attribute.";
        reference
          "GS NFV IFA011: Section 7.1.15.2 VnfPackageChangeInfo
           information element";
      }

      leaf dst-flavour-id {
        type leafref {
          path "../../df/id";
        }
        description
          "Identifies the deployment flavour in the destination VNF
           package for which this change applies. The flavour ID is
           defined in the destination VNF package.";
        reference
          "GS NFV IFA011: Section 7.1.15.2 VnfPackageChangeInfo
           information element";
      }
      description
        "Information used for performing the change of the current
         VNF Package. More than one VNF Package Change Info construct
         is possible to cater the possibility that changes of the
         current VNF Package can be performed for different source
         VNFDs.";
      reference
        "GS NFV IFA011: Section 7.1.2 VNFD information element";
    }

    list lcm-operations-coordination {
      key "coordination-action-name";
      leaf coordination-action-name {
        type string;
        description
          "Identifies the specific VNF LCM operation coordination
           action.Shall be unique within the scope of VNFD";
        reference
          "GS NFV IFA011: Section 7.1.16.2 VnfLcmOperationCoordination
           information element";
      }

      leaf description {
        type string;
        description
          "Human readable description of the coordination action.";
        reference
          "GS NFV IFA011: Section 7.1.16.2 VnfLcmOperationCoordination
           information element";
      }

      leaf endpoint-type {
        type enumeration {
          enum "mgmt";
          enum "vnf";
        }
        description
          "Specifies the type of the endpoint exposing the LCM
           operation coordination such as other operations supporting
           or management systems (e.g. an EM) or the VNF instance.
           • MGMT: coordination with other operation supporting
           • VNF: coordination with the VNF instance.";
        reference
          "GS NFV IFA011: Section 7.1.16.2 VnfLcmOperationCoordination
           information element";
      }

      leaf coordination-stage {
        type enumeration {
          enum "start";
          enum "end";
        }
        description
          "Indicates whether the coordination action is invoked before
           or after all other changes performed by the VNF LCM
           operation.
           Values:
           • START:the coordination action is invoked after receiving
                   the grant and before the LCM operation performs any
                   other changes.
           • END:the coordination action is invoked after the LCM
                 operation has performed all other changes.

           This attribute shall be omitted if the coordination action
           is intended to be invoked at an intermediate stage of the
           LCM operation, i.e. neither at the start nor at the end.
           In this case, the actual instant during the LCM operation
           when invoking the coordination is determined by means outside
           the scope of the present document such as VNFM-internal logic
           or LCM script.";
        reference
          "GS NFV IFA011: Section 7.1.16.2 VnfLcmOperationCoordination
           information element";
      }

      list input-parameter {
        key "key";

        leaf key {
          type string;
        }
        leaf value {
          type string;
        }
          "Input parameter needed by the external coordinating
           entity.";
        reference
          "GS NFV IFA011: Section 7.1.16.2 VnfLcmOperationCoordination
           information element";
      }

      list output-parameter {
        key "key";

        leaf key {
          type string;
        }
        leaf value {
          type string;
        }
          "Output parameter provided by the external coordinating
           entity.";
        reference
          "GS NFV IFA011: Section 7.1.16.2 VnfLcmOperationCoordination
           information element";
      }
      description
        "Provides information used for the coordination in VNF LCM
         operations.";
      reference
        "GS NFV IFA011: Section 7.1.2 VNFD information element";
    }

    leaf-list mciop-id {
      type string;
      description
        "Identifies the MCIOP(s) in the VNF package, used in
         containerized workload management, when the VNF is
         realized by a set of OS containers.";
      reference
        "GS NFV IFA011: Section 7.1.2, VNFD Information element.";
    }