This page is used for the ONAP R2+ Resource IM drafting and discussion.
Table of Content |
Sources:
- AAI: aai_schema_v11
- ECOMP IM UML documentation: ONAP Resource 2017-11-08.docx
- SDC: SDC current ECOMP model
- ETSI: IFA007, IFA008, IFA011, IFA015
Class Diagrams Discussion
This section illustrates the core IM design related to VNF resource from different sources.
Run Time Model (VNF Instance)
IFA015, VNF Classes Mapping
Michela Bevilacqua: How do we map VNFInfo, InstantiatedVnfInfo and connected Info classes present in IFA015 to ONAP IM?
Xu Yang: In my opinion, the VnfInfo, InstantiatedVnfInfo, etc. can be mapped to attributes of the corresponding resource instance objects.
Design Time Model
Resource General View Diagram
- Resource model includes design time model (ResourceDesc) and run time model (ResourceInstance). Based on one ResourceDesc, zero or more ResourceInstance(s) can be instantiated.
- “Resource” is a generalization of many objects, for example, VNF, PNF, entitlement, etc. In the above diagram, only VNF, PNF and ServiceVirtualLink (virtual link between NFs) are shown. More specifically,
- VnfDesc is derived from ResourceDesc, VnfInstance is derived from ResourceInstance. Based on one VnfDesc, zero or more VnfInstance(s) can be instantiated.
- PnfDesc is derived from ResourceDesc, PnfInstance is derived from ResourceInstance. One PnfDesc is used to describe one PnfInstance.
- SrvVlDesc is derived from ResourceDesc, SrvVlInstance is derived from ResourceInstance. Based on one SrvVlDesc, zero or more SrvVlInstance(s) can be instantiated.
- VnfDesc can be composed of one or more VnfcDesc(s) and zero or more VnfVlDesc(s). Correspondingly, VnfInstance can be composed of zero or more VnfcInstance(s) and zero or more VlInstance(s). It should be noted that a VnfInstance comprises zero VnfcInstance is a special case that the VnfInstance object is created but not instantiated.
- Based on one VnfVlDesc, zero or more VlInstance(s) can be instantiated. And Based on one VnfcDesc, zero or more VnfcInstance(s) can be instantiated.
VnfDesc General View Diagram
NOTE: This diagram is a proposed model for the VnfDesc, mainly inspired by the model from ETSI IFA015. Not all elements in the VnfDesc are depicted.
- VnfcDesc is composed of one or more DeploymentFlavor(s), one or more VnfcDesc(s), one or more VnfExtCpDesc(s) and zero or more VnfVlDesc(s).
- DeploymentFlavor references VnfcDesc and VnfVlDesc.
- VnfcDesc is composed of one VirtualComputeDesc, one or more VirtualStorageDesc(s), zero or more SwImageDesc(s) and one or more VnfcCpDesc(s).
- A VirtualStorageDesc can reference a SwImageDesc.
- A VnfExtCpDesc references to a VnfcCpDesc.
- VnfcCpDesc can reference a VnfVlDesc.
IM Attribute Discussion
This section lists the attributes to be discussed before adding into to the information model.
Note: the attribute marked as blue is expected for moving into the clean version
NFC/VNFC Run Time Model
AAI (aai_schema_v11 vnfc) ECOMP IM (VNFC Instance) ETSI IFA008 (VnfcInfo) Comment Description orchestration-status vnfcState Xu Yang: Is it the same as vnfcState (i.e., start or stop)?
James Forsyth: Used for lifecycle management. We don't know what vnfcState is.Xu Yang: vnfcState describes the state of a VNFC instance, possible values are: STARTED, STOPPED. STARTED means the VNFC instance is up and running, and STOPPED means the VNFC instance has been shut down (but not terminated/deleted). Similar to the VM power on/off concept.
Orchestration status of this VNF, mastered by APP-C group-notation Xu Yang: need further clarification on how this attribute is used
James Forsyth: In some applications, a two or more VMs or VNFCs is referred to by a name, and group-notation represents the name. Might want to use instance-group to replace this over time.Group notation of VNFC model-version-id the SDC model version for this resource model relationship-list association (VM, Docker, LXC) AAI: relationship with vserver, vf-module and generic-vnf
NFC/VNFC Design Time Model
SDC (abstract.nodes.VFC) ECOMP IM (VNFCCatalogItem) ETSI IFA011 (VDU/VduProfile) Comment Description Vm_type_tag Mandatory String property that indicates the vm-type as was defined by vendor bootOrder The key indicates the boot index (lowest index defines highest boot priority). The Value references a descriptor from which a valid boot device is created e.g. VirtualStorageDesc from which a VirtualStorage instance is created.
nfviConstraint Describes constraints on the NFVI for the VNFC instance(s) created from this Vdu.
configurableProperties Describes the configurable properties of all VNFC instances based on this VDU.
VNF Run Time Model
AAI (generic_vnf) ECOMP IM (VNF instance) ETSI IFA007 (VnfInfo) Comment Description orchestration-status Xu Yang: only used by SO?
James Forsyth: Used by anyone who wants to check it, set by SOXu Yang: could you elaborate more on the valid values and their meaning?
Orchestration status of this VNF, used by SO. management-option Xu Yang: Need clarification on how this attribute is used.
James Forsyth: indicates who manages a specific resource, whether it's the service provider or a customeridentifier of managed by service provider or customer ipv4-loopback0-address Xu Yang: same as above
James Forsyth: Not mandatory, and it can be applicable for all kinds of VNFs, depending on the requirements of the VNFv4 Loopback address nm-lan-v6-address Xu Yang: same as above
James Forsyth: Not mandatory, and it can be applicable for all kinds of VNFs, depending on the requirements of the VNFv6 Loopback address vcpu Xu Yang: only used by uCPE?
James Forsyth: Yesnumber of vcpus ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE vcpu-units Xu Yang: only used by uCPE?
James Forsyth: Yesunits associated with vcpu, used for VNFs with no vservers/flavors, to be used only by uCPE vmemory Xu Yang: only used by uCPE?
James Forsyth: Yesnumber of GB of memory ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE vmemory-units Xu Yang: only used by uCPE?
James Forsyth: Yesunits associated with vmemory, used for VNFs with no vservers/flavors, to be used only by uCPE vdisk Xu Yang: only used by uCPE?
James Forsyth: Yesnumber of vdisks ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only uCPE vdisk-units Xu Yang: only used by uCPE?
James Forsyth: Yesunits associated with vdisk, used for VNFs with no vservers/flavors, to be used only by uCPE resource-version Xu Yang: Is it used internally in AAI? can be omitted in the general model.
James Forsyth: It's used internally in AAI to enforce concurrency control, other systems use it to pass to AAI on updates and delete operationsUsed for optimistic concurrency. Must be empty on create, valid on update and delete. model-customization-id captures the id of all the configuration used to customize the resource for the service as-number Xu Yang: Please clarify the usage of this attribute.
James Forsyth Has to do with routing, not applicable for all VNFsas-number of the VNF regional-resource-subzone Regional way of organizing pservers, source of truth should define values nf-type Xu Yang: What's the difference between vnf-type and nf-type?
James Forsyth - we are getting rid of vnf-type and replacing with nf-type, nf-function, and nf-roleGeneric description of the type of NF nf-role NetworkRole role in the network that this model will be providing selflink Xu Yang: what controller?
James Forsyth: Not sure if it's being populatedPath to the controller object vlan-id-outer Xu Yang: only used by VCE?
James Forsyth Not sureTemporary location for S-TAG to get to VCE nm-profile-name Network Management profile of this VNF relationship-list Xu Yang: Is the description correct?
James Forsyth - The edge rules has the exhaustive list of possible relationships for generic-vnfrelationship with l-interface, availability-zone, lag-interface, l3-network, pserver, vserver, service-instance, vf-module, volume-group, vnfc and logical-link
l-interfaces logical interfaces lag-interfaces Collection of link aggregate interfaces vf-modules a deployment unit of VNFCs licenses license information entitlements entitlement information HomingPolicy Reference to VNF-level homing policy that ECOMP will use when VNF deployment target node is auto-selected TargetNodePrompt "Y" indicates operator-supplied VNF instance target deployment node required. Present prompt to operator: "Enter target node for deployment of this VNF instance"
"N" indicates that the target deployment node for this VNF instance will be auto-selected by ECOMPVLAN Range Plan Identifies the VNF-level VLAN Range Plan that must be used by ECOMP to assign VLAN tags to an instance of this VNF type VNF Name Prompt "Y" indicates operator-supplied VNF name required. Present prompt to operator: "Enter the name for this VNF instance"
"N" indicates that the name for the VNF instance will be auto-generated by ECOMPVNF Naming Policy Reference to VNF-level naming policy that ECOMP will use when VNF-level name is auto-generated VNF Network Tag Must correlate to the set of defined “network-role” identifiers from the associated HEAT templates metadata Additional VNF-specific metadata describing the VNF instance.
extension VNF-specific attributes that affect the lifecycle management of this VNF instance by the VNFM, or the lifecycle management scripts.
VNF Design Time Model
SDC (generic_VF) ECOMP IM (VNFCatalogItem) ETSI IFA011 (VNFD) Comment Description Nf_role Mandatory property for short code that defines a Network function that the Vendor Software or PNF is providing. E.g. vCE, vARM Nf_type Mandatory String property defining a generic type (like category) of the VF. The value is regulated and should be from a list defined in ASDC. Availability_zone_max_count Xu Yang: need clarfication on how this attribute is used.
An optional integer of availability zones count in the VF. Value should be either 0, 1 or 2 deploymentFlavour Describes specific DF(s) of a VNF with specific requirements for capacity and
performance.modifiableAttributes Describes the modifiable attributes of the VNF.
lifecycleManagementScript Includes a list of events and corresponding management scripts performed for the VNF.
ExternalVirtualLink Design Time Mode
SDC
(extVL)AAI ECOMP IM ETSI IFA014
(virtualLinkDesc)Comments Confirmed Description invariantUUID invariantUUID Constant identifier of the external virtual link UUID virtualLinkDescId vldId Versioned identifier of the external virtual link customizationUUID is the resource instance referred to the run-time resource instance? If it is in the run-time, why is it in the design time?
Identifier of the resource instance (uuid of the specific use of the resource model in this service). This identifier is regenerated whenever a user makes a change on the resource instance.
version virtuaLinkDescVersion version The version of the external virtual link name name The name of the external virtual link description description The description of the external virtual link type The type of resource. Resource type can be either VF, VFC, VFCMT, CP or VL. category Category of the resource subcategory Sub-category of the resource resourceVendor specifies the vendor providing this asset resourceVendorRelease specifies the release version given by the vendor (no exact correlation to the version of the asset in the SDC catalog) resourceVendorModelNumber Metadata of resources (VFs, VFCs, PNF) will include new field resourceVendorModelNumber. The value for this field is the part number defined by the vendor, e.g. “MX960”.
network_type network_type specifies the nature of the physical network in the underlying cloud infra-structure. Examples are flat, vlan, gre or vxlan. For flat and vlan types, physical_network should be provided too. network_role Unique label that defines the role that this network performs. example: vce oam network, vnat sr-iov1 network network_scope Uniquely identifies the network scope. Valid values for the network scope includes: VF - VF-level network. Intra-VF network which connects the VFCs (VMs) inside the VF. SERVICE - Service-level network. Intra-Service network which connects the VFs within the service GLOBAL - Global network which can be shared by multiple services network_technology ECOMP supported network technology network_ecomp_naming network_homing network_assignments provider_network network_flows vendor vitualLinkDescProvider vl_name same with the name ip_version ip_version The IP version of the requested network. cidr cidr The cidr block of the requested network. start_ip start_ip The IP address to be used as the 1st one in a pool of addresses derived from the cidr block full IP range. end_ip end_ip The IP address to be used as the last one in a pool of addresses derived from the cidr block full IP range. gateway_ip gateway_ip The gateway IP address. network_name network_name An Identifier that represents an existing Network instance in the underlying cloud infrastructure - OR - be used as the name of the new created network. network_id network_id An Identifier that represents an existing Network instance in the underlying cloud infrastructure. This property is mutually exclusive with all other properties except network_name. segmentation_id segmentation_id A segmentation identifier in the underlying cloud infrastructure (e.g., VLAN id, GRE tunnel id). If the segmentation_id is specified, the network_type or physical_network properties should be provided as well. physical_network physical_network identifies the physical network on top of which the network is implemented, e.g. physnet1. This property is required if network_type is flat or vlan. dhcp_enabled dhcp_enabled Indicates the TOSCA container to create a virtual network instance with or without a DHCP service. testAccess virtualLinkDf ConnectivityType
(layerProtocol,flowPattern)security ExternalVirtualLink Run Time Model
AAI
(l3-network)ECOMP IM ETSI IFA013
(VirtualLink)
Comments Confirmed Description network-id nsVirtualLinkInstanceId virtualLinkInstanceId network-name description description network-role network-technology neutron-network-id ResourceHandle
(vimId,resourceProviderId,resourceId)is-bound-to-vpn service-id nsInstanceId componentInstanceId network-role-instance resource-version orchestration-status heat-stack-id mso-catalog-key contrail-network-fqdn model-invariant-id invariantUUID model-version-id UUID persona-model-version version model-customization-id widget-model-id widget-model-version physical-network-name is-provider-network is-shared-network is-external-network selflink selfLink operational-status status nslinkport