etsi-nfv-vnf.yang 106 KB
Newer Older
        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 {
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/parameter/key";
        }
        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.
           The possible values include at least:

           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-id {
        type leafref {
          path "../../lcm-operations-coordination/id";
        }
        description
          "Reference to applicable VNF LCM operation coordination
           actions.";
        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 "id";

      leaf id {
        type string;
        description
          "Identifies the specific VNF LCM operation coordination
           action.";
        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.
           Allowed values:
           • MGMT: coordination with other operation supporting
                   management systems.
           • VNF: coordination with the VNF instance.";
        reference
          "GS NFV IFA011: Section 7.1.16.2 VnfLcmOperationCoordination
           information element";
      }

      leaf coordination-stage {
        type string;
        description
          "Indicates the coordination stage during the VNF LCM
           operation.";
        reference
          "GS NFV IFA011: Section 7.1.16.2 VnfLcmOperationCoordination
           information element";
      }

      leaf coordination-params {
        type string;
        description
          "Input information needed 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";
    }