This page is used for the ONAP R2+ Resource IM drafting and discussion.
Sources:
This section illustrates the core IM design related to VNF resource from different sources.
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.
1) ONAP Resource Model UML
High Level Diagram
VNFDesc - Network View
VNFDesc - VNFCDesc
2) ETSI IFA IM (IFA015 VNFD)
(besides VduCpd, Vdu also has relationship with VirtualComputeDesc, VirtualStorageDesc and swImageDesc; which are omitted in this diagram)
3) SDC IM (normative and heat types)
(omit several types for simplicity)
4) Proposed ONAP R2+ Design Time Model
Resource General View Diagram
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.
This section compares the different IM design from different sources.
AAI (aai_schema_v11 vnfc) | ECOMP IM (VNFC Instance) | ETSI IFA008 (VnfcInfo) | Comment | Description |
---|---|---|---|---|
vnfc-name | vnfcInstanceId | identifier of the vnfc instance | ||
nfc-naming-code | Xu Yang: Need specification/reference for the value of this attribute? Xu Yang: Should the attribute name aligned to "vnfc"? James Forsyth: No, in a network function we should not care if it's physical or virtual | short code of the vnfc instance | ||
nfc-function | Xu Yang: Should the attribute name aligned to "vnfc"? | description of the vnfc instance | ||
prov-status | Xu Yang: need further clarification on how this attribute is used | Trigger for operational monitoring of this resource by Service Assurance systems | ||
orchestration-status | vnfcState | Xu Yang: Is it the same as vnfcState (i.e., start or stop)? 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 | |
ipaddress-v4-oam-vip | Xu Yang: Is this attribute mandatory? and applicable for all kinds of VNFCs? | Oam V4 vip address of this vnfc | ||
in-maint | Pamela Dragosh: DCAE monitors this flag. If set it does not "observe" alarms/traps/etc. during control loop. | whether in maintenance mode | ||
is-closed-loop-disabled | Xu Yang: used by DCAE? Pamela Dragosh: Yes actually Policy has the rules that check for this. DCAE does not. DCAE does however check the in-maint flag. | used to indicate whether closed loop function is enabled on this node | ||
group-notation | Xu Yang: need further clarification on how this attribute is used | Group notation of VNFC | ||
model-invariant-id | vduId | the SDC model id for this resource model | ||
model-version-id | the SDC model version for this resource model | |||
resource-version | Xu Yang: Is it used internally in AAI? can be omitted in the general model. | Used for optimistic concurrency. Must be empty on create, valid on update and delete | ||
l3-interface-ipv4-address-list | l3 interface addresses, ipv4 | |||
l3-interface-ipv6-address-list | l3 interface addresses, ipv6 | |||
relationship-list | association (VM, Docker, LXC) | AAI: relationship with vserver, vf-module and generic-vnf |
SDC (abstract.nodes.VFC) | ECOMP IM (VNFCCatalogItem) | ETSI IFA011 (VDU/VduProfile) | Comment | Description |
---|---|---|---|---|
Nfc_function | description | Xu Yang: Should the attribute name aligned to "vdu"? | description of the vdu | |
High_availability | An optional String property that indicates the high_availability functionality of this VFC (e.g. “geo-activeactive”) | |||
Vm_image_name | swImageDesc | Xu Yang: not fully aligned, need to analysis which information need to be exposed | Name or information of the software image used by the vdu. | |
Vm_flavor_name | An optional String property that provides the vm flavor name | |||
Nfc_naming_code | Xu Yang: aligned with AAI model | Mandatory String property that describes the role of the VFC in the VF context. E.g. Signaling Session Controller (SSC), Media Session Controller (MSC) | ||
Vm_type_tag | Mandatory String property that indicates the vm-type as was defined by vendor | |||
Nfc_naming | name | name of the vdu | ||
Min_instances | minNumberOfInstances | minimal amount of the VNFC instances allowed to be instantiated in the containing VNF instance | ||
Max_instances | maxNumberOfInstances | maximum amount of the VNFC instances allowed to be instantiated in the containing VNF instance | ||
UUID | vduId | identifier of the model | ||
(other metadata attributes) | version of the model, type of the model, category/subcategory, ... | |||
association (VNFCConfiguration, VNFCCapability) | ||||
intCpd | Describes network connectivity between a VNFC instance (based on this Vdu) and an internal Virtual Link (VL). | |||
virtualComputeDesc | Describes CPU, Memory and acceleration requirements of the Virtualisation Container realising this Vdu. | |||
virtualStorageDesc | Describes storage requirements for a VirtualStorage instance attached to the virtualisation container created from virtualComputeDesc defined for this Vdu. | |||
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. | |||
monitoringParameter | Defines the virtualised resources monitoring parameters on VDU level. | |||
configurableProperties | Describes the configurable properties of all VNFC instances based on this VDU. | |||
localAffinityOrAntiAffinityRule | Specifies affinity or anti-affinity rules applicable between the virtualisation containers (e.g. virtual machines) to be created based on this VDU. | |||
affinityOrAntiAffinityGroupId | Identifier(s) of the affinity or anti-affinity group(s) the VDU belongs to. |
AAI (generic_vnf) | ECOMP IM (VNF instance) | ETSI IFA007 (VnfInfo) | Comment | Description |
---|---|---|---|---|
vnf-id | vnfInstanceId | identifier of the vnf instance | ||
vnf-name | vnfInstanceName | name of the vnf instance | ||
vnf-name2 | Xu Yang: use case for alternative name? | alternative name of the vnf instance | ||
vnf-type | VFType | Xu Yang: Is there any reference/specification for the value of this attribute? | String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures. | |
service-id | Xu Yang: deprecated? | Unique identifier of service, does not necessarily map to ASDC service models. SOON TO BE DEPRECATED | ||
regional-resource-zone | Regional way of organizing pservers, source of truth should define values | |||
prov-status | Xu Yang: Need clarification, similar to vnfc instance model. | Trigger for operational monitoring of this resource by Service Assurance systems. | ||
operational-status | Xu Yang: Need clarification on how this attribute is used. Xu Yang: Are the valid values "in-service-path" and "out-of-service-path"? Don't understand what do these values mean, in use or not in use by a service? | Indicator for whether the resource is considered operational. Valid values are in-service-path and out-of-service-path. | ||
license-key | Xu Yang: deprecated? | OBSOLETE - do not use | ||
equipment-role | Xu Yang: Please clarify the usage of this attribute. | Client should send valid enumerated value | ||
orchestration-status | Xu Yang: only used by SO? Xu Yang: could you elaborate more on the valid values and their meaning? | Orchestration status of this VNF, used by SO. | ||
heat-stack-id | Xu Yang: only used by SO? | Heat stack id corresponding to this instance, managed by SO | ||
mso-catalog-key | Xu Yang: only used by VCE? | Corresponds to the SDN-C catalog id used to configure this VCE | ||
management-option | Xu Yang: Need clarification on how this attribute is used. | identifier of managed by service provider or customer | ||
ipv4-oam-address | Xu Yang: Is this attribute mandatory? and applicable for all kinds of VNFs? (same question as VNFC instance model) | Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by generic-vnf. | ||
ipv4-loopback0-address | Xu Yang: same as above | v4 Loopback address | ||
nm-lan-v6-address | Xu Yang: same as above | v6 Loopback address | ||
management-v6-address | Xu Yang: same as above | v6 management address | ||
vcpu | Xu Yang: only used by uCPE? | number 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? | units associated with vcpu, used for VNFs with no vservers/flavors, to be used only by uCPE | ||
vmemory | Xu Yang: only used by uCPE? | number 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? | units associated with vmemory, used for VNFs with no vservers/flavors, to be used only by uCPE | ||
vdisk | Xu Yang: only used by uCPE? | number 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? | units associated with vdisk, used for VNFs with no vservers/flavors, to be used only by uCPE | ||
in-maint | indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs | |||
is-closed-loop-disabled | indicate whether closed loop function is enabled on this node | |||
resource-version | Xu Yang: Is it used internally in AAI? can be omitted in the general model. | Used for optimistic concurrency. Must be empty on create, valid on update and delete. | ||
summary-status | Xu Yang: deprecated? | details regarding the generic-vnf operation, PLEASE DISCONTINUE USE OF THIS FIELD. | ||
encrypted-access-flag | indicates whether generic-vnf access uses SSH | |||
entitlement-assignment-group-uuid | Xu Yang: deprecated? | UUID of the Entitlement group used for licensing VNFs, OBSOLETE - See child relationships. | ||
entitlement-resource-uuid | Xu Yang: deprecated? | UUID of the specific entitlement resource. OBSOLETE - See child relationships | ||
license-assignment-group-uuid | Xu Yang: deprecated? | UUID of the license assignment group. OBSOLETE - See child relationships. | ||
license-key-uuid | Xu Yang: deprecated? | UUID of the actual license resource. OBSOLETE - See child relationships. | ||
model-invariant-id | VNF Model Id | vnfdId | identifier of the VNF model | |
model-version-id | VNF Model Version | vnfdVersion | version of the VNF model | |
persona-model-version | Xu Yang: It seems to be used internally in AAI, need clarification on the usage of this attribute. | the ASDC model version for this resource or service model | ||
model-customization-id | vnfConfigurableProperty | captures the id of all the configuration used to customize the resource for the service | ||
widget-model-id | Xu Yang: Is it used internally in AAI? Can be omitted in general model | the ASDC data dictionary widget model. This maps directly to the A&AI widget. | ||
widget-model-version | Xu Yang: Is it used internally in AAI? Can be omitted in general model | the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget. | ||
as-number | Xu Yang: Please clarify the usage of this attribute. | as-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? | Generic description of the type of NF | ||
nf-function | vnfInstanceDescription | description of the VNF instance | ||
nf-role | NetworkRole | role in the network that this model will be providing | ||
nf-naming-code | string assigned to this model used for naming purposes | |||
selflink | Xu Yang: what controller? | Path to the controller object | ||
ipv4-oam-gateway-address | Xu Yang: Is this attribute mandatory? and applicable for all kinds of VNFs? | Gateway address | ||
ipv4-oam-gateway-address-prefix-length | Xu Yang: same as above | Prefix length for oam-address | ||
vlan-id-outer | Xu Yang: only used by VCE? | Temporary 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? | relationship 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 ECOMP | |||
VLAN 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 ECOMP | |||
VNF 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 | |||
vnfSoftwareVersion | Software version of the VNF. This is changed when there is any change to the software that is included in the VNF | |||
vnfProvider | Provider of the VNF and of the VNFD. | |||
vnfProductName | Name to identify the VNF Product. Invariant for the VNF Product lifetime. | |||
onboardedVnfPkgInfoId | Identifier of the specific VNF Package on which the VNF is based. | |||
instantiationState | The instantiation state of the VNF instance. Possible values: NOT_INSTANTIATED (VNF instance is terminated or not instantiated, and the identifier of the VNF instance exists), INSTANTIATED (VNF instance is instantiated). | |||
instantiatedVnfInfo | Information specific to an instantiated VNF instance. Shall be present if the VNF is in INSTANTIATED instantiation state. | |||
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. |
SDC (generic_VF) | ECOMP IM (VNFCatalogItem) | ETSI IFA011 (VNFD) | Comment | Description |
---|---|---|---|---|
Nf_function | description | vnfProductInfoDescription | description of the VNF model | |
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_naming_code | short-name | Mandatory string providing short code that is used in VNF, PNF, and VM instance naming. The NF Code can be the same value or a different value than the NF Role. | ||
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. | |||
Nf_naming | name | vnfProductName | name of the VNF | |
vnfProductInfoName | Human readable name for the VNF Product. Can change during the VNF Product lifetime. | |||
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 | ||
Min_instances | An optional property declaring the minimum number of this VF in the Service | |||
Max_instances | An optional property declaring the maximum number of this VF in the Service | |||
UUID | id | vnfdId | identifier of the VNF model | |
logo | logo | |||
vendor | vnfProvider | Provider of the VNF and of the VNFD. | ||
version | version | vnfdVersion | version of the VNF model | |
vnfSoftwareVersion | Software version of the VNF. This is changed when there is any change to the | |||
vnfmInfo | Identifies VNFM(s) compatible with the VNF described in this version of the | |||
localizationLanguage | Information about localization languages of the VNF (includes e.g. strings in the | |||
defaultLocalizationLanguage | Default localization language | |||
vdu | Virtualisation Deployment Unit. VNFC model | |||
virtualComputeDesc | Defines descriptors of virtual compute resources to be used by the VNF. | |||
virtualStorageDesc | Defines descriptors of virtual storage resources to be used by the VNF. | |||
intVirtualLinkDesc | Represents the type of network connectivity mandated by the VNF provider between two or more CPs which includes at least one internal CP. | |||
vnfExtCpd | Describes external interface(s) exposed by this VNF enabling connection with a VL. | |||
deploymentFlavour | Describes specific DF(s) of a VNF with specific requirements for capacity and | |||
configurableProperties | Describes the configurable properties of the VNF (e.g. related to auto scaling and | |||
modifiableAttributes | Describes the modifiable attributes of the VNF. | |||
lifecycleManagementScript | Includes a list of events and corresponding management scripts performed for the VNF. | |||
elementGroup | Describes the associated elements (i.e. VDUs and/or VLs) of a VNFD for a certain purpose during VNF lifecycle management. | |||
vnfIndicator | Xu Yang: Indicators are vendor-specified information which can indicate the VNF behaviour. | Declares the VNF indicators that are supported by this VNF. | ||
autoScale | Rule that determines when a scaling action needs to be triggered on a VNF |
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 |
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 |