etsi-nfv-ns.yang 46.4 KB
Newer Older
               information element";
          leaf description {
            type string;
            description
              "Provides a human readable description of the NS
               scaling aspect.";
            reference
              "GS NFV IFA014: Section 6.7.2.2 NsScalingAspect
               information element";
          leaf scaling-level {
            type leafref {
              path "../../ns-instantiation-level/id";
            description
              "Describes the details of an NS level.";
            reference
              "GS NFV IFA014: Section 6.7.2.2 NsScalingAspect
               information element";
          }
        }

        list affinity-or-anti-affinity-group {
          key "id";

          description
            "Specifies affinity or anti-affinity relationship
             applicable between the VNF instances created using
             different VNFDs, the Virtual Link instances created
             using different NsVirtualLinkDescs or the nested NS
             instances created using different NSDs in the same
             affinity or anti-affinity group.";
          reference
            "GS NFV IFA014: Section 6.3.2.2 NsDf information element";

          leaf id {
            type string;
            description
              "Identifier of Identifier of this 
               AffinityOrAntiAffinityGroup information element.";
            reference
              "GS NFV IFA014: Section 6.3.5.2 AffinityOrAntiAffinity
               information element";
          }

          leaf affinity-type {
            mandatory true;
            type common:affinity-type;
            description
              "Specifies the type of relationship that the members of
               the group have: 'affinity' or 'anti-affinity.'";
            reference
              "GS NFV IFA014: Section 6.3.5.2 AffinityOrAntiAffinity
               information element";
          }

          leaf affinity-scope {
            mandatory true;
            type common:affinity-scope;
            description
              "Specifies the scope of the affinity or anti-affinity
               relationship e.g. a NFVI node, an NFVI PoP, etc.";
            reference
              "GS NFV IFA014: Section 6.3.5.2 AffinityOrAntiAffinity
               information element";
        list ns-instantiation-level {
          min-elements 1;
          key "id";

          description
            "Describes the details of an NS level.";
          reference
            "GS NFV IFA014: Section 6.3.2.2 NsDf information element
             GS NFV IFA014: Section 6.7.2.2 NsScaling information
             element";

          leaf id {
            type string;
            description
              "Identifier of this NsLevel information element. It
               uniquely identifies an NS level within the DF.";
            reference
              "GS NFV IFA014: Section 6.3.9.2 NsLevel information
               element";
          }

          leaf description {
            type string;
            description
              "Human readable description of the NS level.";
            reference
              "GS NFV IFA014: Section 6.3.9.2 NsLevel information
               element";
          }

          list vnf-to-level-mapping {
            key "vnf-profile-id";

            description
              "Specifies the profile of the VNFs involved in this NS
               level and, for each of them, the required number of
               instances.";
            reference
              "GS NFV IFA014: Section 6.3.9.2 NsLevel information
               element";
            leaf vnf-profile-id {
              type leafref {
                path "../../../vnf-profile/id";
              description
                "Identifies the profile to be used for a VNF
                 involved in an NS level.";
              reference
                "GS NFV IFA014: Section 6.7.4.2 VnfToLevelMapping
                 information element";
            }

            leaf number-of-instances {
              mandatory true;
              type uint32;
              description
                "Specifies the number of VNF instances required for
                 an NS level.";
              reference
                "GS NFV IFA014: Section 6.7.4.2 VnfToLevelMapping
                 information element";
          list virtual-link-to-level-mapping {
            key "virtual-link-profile-id";

            description
              "Specifies the profile of the VLs involved in this NS
               level and, for each of them, the needed bandwidth.";
            reference
              "GS NFV IFA014: Section 6.3.9.2 NsLevel information
               element";
            leaf virtual-link-profile-id {
              type leafref {
                path "../../../virtual-link-profile/id";
              description
                "Identifies the profile to be used for a VL involved
                 in an NS level.";
              reference
                "GS NFV IFA014: Section 6.7.5.2
                 VirtualLinkToLevelMapping information element";
            uses common:link-bitrate-requirements;
          }

          list ns-to-level-mapping {
            key "ns-profile-id";

            description
              "Specifies the profile of the nested NSs involved in
               this NS level and, for each of them, the required
               number of instances.";
            reference
              "GS NFV IFA014: Section 6.3.9.2 NsLevel information
               element";

            leaf ns-profile-id {
              type leafref {
                path "../../../ns-profile/id";
              description
                "Identifies the profile to be used for a nested NS
                 involved in the NS level.";
              reference
                "GS NFV IFA014: Section 6.7.6.2 NsToLevel information
                 element";
            }

            leaf number-of-instances {
              mandatory true;
              type uint32;
              description
                "Specifies the number of nested NS instances required
                 for the NS scale level.";
              reference
                "GS NFV IFA014: Section 6.7.6.2 NsToLevel information
                 element";

          must "(count(vnf-to-level-mapping) + " +
            "count(virtual-link-to-level-mapping) + " +
            "count(ns-to-level-mapping)) > 0" {
            error-message "At least one attribute between " +
              "vnf-to-level-mapping, " +
              "virtual-link-to-level-mapping and " +
              "ns-to-level-mapping shall be present.";
            description
              "At least one attribute between vnfToLevelMapping,
              vlirtualLinkToLevelMapping and nsToLevelMapping shall
                be present.";
            reference
              "GS NFV IFA014: Section 6.3.9.2 NsLevel information
              element";
          }
        }

        leaf default-instantiation-level {
          type leafref {
            path "../ns-instantiation-level/id";
          description
            "Identifies the NS level which represents the default NS
             instantiation level for this DF. It shall be present if
             there are multiple 'nsIinstantiationLevel' entries.";
          reference
            "GS NFV IFA014: Section 6.3.2.2 NsDf information element";
          must "min-number-of-instances <= max-number-of-instances" {
            error-message
              "min-number-of-instances has to be less than or equal" +
              "max-number-of-instances.";
          }
          must "boolean(../../nested-nsd-id[.=current()/nsd-id])" {
            error-message "PNFDs in the profile has to be listed as a " +
              "dependency of the network service " +
              "descriptor.";
          }
          key "id";

          description
            "Specifies a NS Profile supported by this NS DF.";
          reference
            "GS NFV IFA014: Section 6.3.2.2 NsDf information element";

          leaf id {
            type string;
            description
              "Identifies an NS profile.";
            reference
              "GS NFV IFA014: Section 6.3.11.2 NsProfile information
               element";
          }
          leaf nsd-id {
            mandatory true;
            type leafref {
              path "/nfv/nsd/id";
            description
              "Identifies the NSD applicable to NS instantiated
               according to this profile.";
            reference
              "GS NFV IFA014: Section 6.3.11.2 NsProfile information
               element";
          leaf ns-df-id {
            mandatory true;
            type leafref {
              path "deref(../nsd-id)/../df/id";
            description
              "Identifies the applicable network service DF within
               the scope of the NSD.";
            reference
              "GS NFV IFA014: Section 6.3.11.2 NsProfile information
               element";
          leaf instantiation-level-id {
            mandatory true;
            type leafref {
              path "deref(../ns-df-id)/../ns-instantiation-level/id";
            description
              "Identifies the NS level within the referenced NS DF to
               be used in the context of the parent NS instantiation.
               If not present, the default NS instantiation level as
               declared in the referenced NSD shall be used.";
            reference
              "GS NFV IFA014: Section 6.3.11.2 NsProfile information
               element";
          }
          leaf min-number-of-instances {
            type uint16;
            mandatory true;
            description
              "Minimum number of nested NS instances based on the
               referenced NSD that is permitted to exist for this
               NsProfile.";
            reference
              "GS NFV IFA014: Section 6.3.11.2 NsProfile information
               element";
          }
          leaf max-number-of-instances {
            type uint16;
            mandatory true;
            description
              "Maximum number of nested NS instances based on the
               referenced NSD that is permitted to exist for this
               NsProfile.";
            reference
              "GS NFV IFA014: Section 6.3.11.2 NsProfile information
               element";

          list affinity-or-anti-affinity-group-id {
            description
              "Identifies an affinity or anti-affinity group the NSs
               created according to this NsProfile belongs to.";
            reference
              "GS NFV IFA014: Section 6.3.11.2 NsProfile information
               element";

            leaf id {
              type leafref {
                path "../../../affinity-or-anti-affinity-group/id";

          list virtual-link-connectivity {
            key "virtual-link-profile-id";

            leaf virtual-link-profile-id {
              type leafref {
                path "../../../virtual-link-profile/id";
              }
              description
                "Reference an NS VL profile.";
              reference
                "GS NFV IFA014: Section 6.3.7.2, NsVirutalLinkConnectivity
                 information element.";
            }
            leaf-list cpd-id {
              type leafref {
                path "deref(../../nsd-id)/../sapd/id";
              }
	      description
                "References the descriptor of a connection point on a
                 VNF/PNF or a SAP which connects to virtual links
                 instantiated from the profile identified in the
                 virtualLinkProfileId attribute.";
              reference
                "GS NFV IFA014: Section 6.3.7.2, NsVirutalLinkConnectivity
                 information element.";
	    }
            description
              "Defines the connection information of the NS, it
               contains connection relationship between an NS SAP and
               a NS virtual Link of the composite NS.";
            reference
              "GS NFV IFA014: Section 6.3.11.2 NsProfile information
               element";
          }
        list dependencies {

          description
            "Specifies the order in which instances of the VNFs and/or
             nested NSs have to be created.";
          reference
            "GS NFV IFA014: Section 6.3.2.2 NsDf information element";

          leaf id {
            type string;
          }
          choice primary-id {
            leaf primary-vnf-profile {
              type leafref {
                path "../../vnf-profile/vnfd-id";
              }
            }
            leaf primary-ns-profile {
              type leafref {
                path "../../ns-profile/nsd-id";
            description
              "References a VnfProfile or NsProfile.";
            reference
              "GS NFV IFA014: Section 6.3.12.2 Dependencies
               information element";
          choice secondary-id {
            leaf secondary-vnf-profile {
              type leafref {
                path "../../vnf-profile/vnfd-id";
              }
            }
            leaf secondary-ns-profile {
              type leafref {
                path "../../ns-profile/nsd-id";
            description
              "References a VnfProfile or NsProfile.";
            reference
              "GS NFV IFA014: Section 6.3.12.2 Dependencies
               information element";

        list monitored-info {
          key "id";

          leaf id {
            type string;
          }

          container vnf-indicator-info {
            leaf vnfd-id {
              type leafref {
                path "/nfv/vnfd/id";
              }
              description
                "Identifies a VNFD.";
              reference
                "GS NFV IFA014: Section 6.2.7.2 VnfIndicatorData
                 information element";
            }
            leaf vnf-indicator {
              mandatory true;
              type leafref {
                path "deref(../vnfd-id)/../indicator/id";
              }
              description
                "Identifies a VNF indicator within the VNFD.";
              reference
                "GS NFV IFA014: Section 6.2.7.2 VnfIndicatorData
                 information element";
            }
            description
              "Uniquely identifies this VNF Indicator information
               element.";
            reference
              "GS NFV IFA014: Section 6.2.6.2 MonitoredData
               information element";
          }

          // monitoringParameter in IFA014 is defined by MonitoredData
          // whereas monitoringParameter in IFA011 is defined by
          // MonitoringParameter.
          container monitoring-parameter {
            leaf id {
              type string;
              description
                "Unique identifier of this monitoring parameter
                 information element.";
              reference
                "GS NFV IFA014: Section 6.2.8.2 MonitoringParameter
                 information element";
            }

            leaf name {
              type string;
              description
                "Human readable name of the monitoring parameter.";
              reference
                "GS NFV IFA014: Section 6.2.8.2 MonitoringParameter
                 information element";
            }

            leaf performance-metric {
              mandatory true;
              type string;
              description
                "Defines the virtualised resource-related performance
                 metric.";
              reference
                "GS NFV IFA014: Section 6.2.8.2 MonitoringParameter
                 information element";
            }
          }
	}
      uses common:security-parameters;