This page is used for the ONAP R2+ Service IM drafting and discussion.
ONAP R2+ Service IM start from ECOMP Service IM model as below class diagram:
Products are made up of services (ServiceCatalogItems on the design side, ServiceInstances on the runtime side).
Services are made up of service components. A service component is not seen or known to products like SID ResourceFacingServices are not seen by products. Services can be composed of other Services and may be referred to as complex services. One Service is a E2E service. Network Service, or WAN service can be the service components in the E2E service.
ServiceComponents are made up of ServiceComponents or resources.
Take the ONAP R1 VoLTE use case as an example. The E2E VoLTE service can be designed as the service; The IMS, EPC, and WAN can be designed as the service components. The HSS, CSCF, TAS, SBC, MME, and SPGW etc, and the link between them can be design as the resources.
the comparision table among ECOMP IM, SDC IM, ETSI NFV IFA, A&AI as below:
ServiceCatalogItem
SDC (Service) | AAI (service) | ECOMP IM (ServiceCatalogItem) | Comments | Confirmed | Description |
invariantUUID | serviceInvariantUUID | Constant identifier of the service model | |||
UUID | service-id | ServiceUUID | serviceUUID | Versioned identifier of the service model (this uuid is changed for every major version of the service) | |
name | ServiceDisplayName | serviceName | The name of the service | ||
description | service-description | ServiceDescription | serviceDescription | The description of the service | |
type | maopeng zhang ServiceCatalogItem-Q1: what‘s the difference of type and serviceType or category?’ Type - A predefined list which identifies the construct (i.e., service, VF, VFC, CP, VL, etc.). serviceType - An optional string field defining a generic type (like category) of the service. E.g. this field can be used for defining the service as “TRANSPORT”. | ||||
Category | Category | ||||
serviceType | serviceType | ||||
serviceRole | serviceRole | maopeng zhang ServiceCatalogItem-Q2: What's the ServiceRole used for in the use cases and how does it effect the run-time components? serviceRole - An optional string field for shortcode that defines the function that the service is providing. E.g. “MISVPN” or “AIM”. | |||
serviceEcompNaming | maopeng zhang ServiceCatalogItem-Q3: What's the naming used for in the use cases and how does it effect the run-time components? The naming fields are used to define if the service instance name is auto-generated by the runtime components (SO and SDNC). Need to refer to the use case owners to understand if and how these fields are used. maopeng zhang: ServiceEcompNaming and ecompGeneratedNaming are two flags to indentify whether the ONAP service name auto-generated. For the user, there are too many parameters to be inputted if using this feature. could it be possible that if namingPolicy is provided and serviceName is empty, the ONAP will auto-generate service name? | ||||
ecompGeneratedNaming | |||||
namingPolicy | |||||
service_naming | |||||
service-version | Version | serviceVersion | The service version in SDC catalog | ||
resource-version | maopeng zhang ServiceCatalogItem-Q4: What's the resource-version meaning here? The version of resource are related to the resource. Why is it as a service attribute? | ||||
AT&TContact | maopeng zhang ServiceCatalogItem-Q5: Is it the service designer? If consider multi-designers, the attributes should be array type. | ||||
Capacity | maopeng zhang ServiceCatalogItem-Q6: Please clarify how to use the attribute in the run-time? | ||||
Constraints | maopeng zhang ServiceCatalogItem-Q7: ECOMP IM: From the TOSCA model. Multiple fields. Could include thresholds and policies. Vendor upgrade requirements should also be included here. TOSCA: A constraint clause defines an operation along with one or more compatible values that can be used to define a constraint on a property or parameter’s allowed values when it is defined in a TOSCA Service Template or one of its entities. The constraints is not a attribute. | ||||
Cost | maopeng zhang ServiceCatalogItem-Q8: What's the Cost used for in the use cases and how does it effect the run-time components? | ||||
D2RequirementsChecklist | maopeng zhang ServiceCatalogItem-Q9: What's the Cost used for in the use cases and how does it effect the run-time components? | ||||
EntitlementID | maopeng zhang ServiceCatalogItem-Q10: What's the EntitlementId, UnitNumber, and unitType used for in the use cases and how does it effect the run-time components? | ||||
EntitlementUnitNumber | |||||
EntitlementUnitType | |||||
FaultRequirements | maopeng zhang ServiceCatalogItem-Q11: It is an document from vendor. Should it be moved from design time? | ||||
Features | maopeng zhang ServiceCatalogItem-Q12: It is an document from vendor. Should it be moved from design time? | ||||
History | maopeng zhang ServiceCatalogItem-Q13: History is used for Keeping all major events, i.e., creation date, any modification, check in and check out with ATT UID. The type is only char. Suggest to be specified. | ||||
Icon | icon | The icon path of the service | |||
LicensingModel | maopeng zhang ServiceCatalogItem-Q14: Do the Service support license? | ||||
Performance | maopeng zhang ServiceCatalogItem-Q15: It is an document from vendor. Should it be moved from design time? | ||||
Requirements | maopeng zhang ServiceCatalogItem-Q16: What are the Requirements used for in the use cases and how does it effect the run-time components? | ||||
ServiceSystemName | |||||
Subcategory | |||||
Tags/Keywords | |||||
Template | maopeng zhang: Please clarify why it is needed. | ||||
TestScripts | maopeng zhang: are the test scripts for the service? If it is true, other scripts also are needed, such as workflow scripts or plans and should be considered. | ||||
VendorTestResults | maopeng zhang: It is an document from vendor. Should it be moved from design time? | ||||
VF-SpecificPolicies | maopeng zhang: should be those VF related attributes moved to VNF, not in the service? | ||||
VFArtifacts | |||||
VFConfigParameters | |||||
VFImage |
ServiceInstance
AAI (ServiceInstance) | ECOMP IM (service-instance) | Comments | Confirmed | Description |
service-Instance-Id | serviceInstanceId | Uniquely identifies this instance of a service | ||
service-instance-name | serviceInstanceName | The name assigned to the service-instance | ||
service-type | ||||
service-role | ||||
environment-Context | maopeng zhang: ServiceInstance-Q1 Where the workload-Context is got and format? | |||
workload-Context | maopeng zhang: ServiceInstance-Q2 Where the workload-Context is got and format? | |||
model-invariant-id | serviceInvariantUUID | Constant identifier of the service model | ||
model-version-id | maopeng zhang : ServiceInstance-Q3 what's the difference between them? Which is the Service UUID? | ServiceUUID | Versioned identifier of the service model (this uuid is changed for every major version of the service) | |
persona-Model-Version | ServiceVersion | The service version in SDC catalog | ||
widget-Model-Id | maopeng zhang : ServiceInstance-Q4 what's the widget-model-id & version? | |||
widget-Model-Version | ||||
bandwidth-total | maopeng zhang : ServiceInstance-Q5 If the service is an general service, why only define these bandwidth attributes? | |||
bandwidth-up-wan1 | ||||
bandwidth-down-wan1 | ||||
bandwidth-up-wan2 | ||||
bandwidth-down-wan2 | ||||
vhn-portal-url | maopeng zhang: What's "vhn-portal-url"? | |||
service-instance-location-id | maopeng zhang: Where the locationId is got? and How to use it? | |||
resource-version | maopeng zhang: Same with ServiceCatalogItem-Q4 | |||
selflink | selfLink | URL to endpoint where more details can be gotten | ||
orchestration-status | status | Orchestration status of the service instance |
ServiceComponentCatalogItem
SDC (Service) | AAI (service) | ECOMP IM (ServiceComponentCatalogItem) | ETSI IFA014 (NetworkService) | Comments | Confirmed | Description |
invariantUUID | nsdInvariantId | invariantUUID | Constant identifier of the Service Component model | |||
UUID | service-id | ServiceComponentCatalogItem | nsdIdentifier | UUID | Versioned identifier of the Service Component model (this uuid is changed for every major version of the service component) | |
name | nsdName | name | The name of the service component | |||
description | service-description | description | The description of service component | |||
type | ||||||
Category | ||||||
serviceType | serviceType | |||||
serviceRole | serviceRole | |||||
serviceEcompNaming | same with the ServiceCatalogItem-Q3 | |||||
ecompGeneratedNaming | ||||||
namingPolicy | ||||||
service_naming | ||||||
service-version | version | version | The version of service component | |||
resource-version | same with the ServiceCatalogItem-Q4 | |||||
designer | designer | The designer of service component | ||||
ServiceComponentCatalogItem | nestedNsdId | ServiceComponentCatalogItem-Q1 suggest these parameters to the service component(NS). Put the ServiceComponent as an abstract definition, and some specific domain service components can inherit from it and add their own attributes, such as NS or WAN, or others. | ||||
ResourceCatalogItem | vnfdid | |||||
ResourceCatalogItem | pnfdId | |||||
sapd | ||||||
ResourceCatalogItem | virtualLinkDesc | |||||
vnffgd | ||||||
monitoredInfo | ||||||
autoScalingRule | ||||||
lifeCycleManagementScript | ||||||
nsDf | ||||||
security |
ServiceComponentInstance
AAI (ServiceInstance) | ECOMP IM (service component) | ETSI IFA013 (NS) | Comments | Confirmed | Descripion |
service-Instance-Id | nsInstanceId | componentInstanceId | Uniquely identifies this instance of a service component | ||
service-instance-name | nsName | componentInstanceName | The name assigned to the service component instance | ||
service-type | |||||
service-role | |||||
environment-Context | same with the ServiceInstance-Q1 | ||||
workload-Context | same with the ServiceInstance-Q2 | ||||
model-invariant-id | nsdId | invariantUUID | Constant identifier of the service component model | ||
model-version-id | same with the ServiceInstance-Q3 | Versioned identifier of the service component model (this uuid is changed for every major version of the service component) | |||
persona-Model-Version | The service version in SDC catalog | ||||
widget-Model-Id | |||||
widget-Model-Version | |||||
bandwidth-total | |||||
bandwidth-up-wan1 | |||||
bandwidth-down-wan1 | |||||
bandwidth-up-wan2 | |||||
bandwidth-down-wan2 | |||||
vhn-portal-url | |||||
service-instance-location-id | |||||
resource-version | |||||
selflink | selfLink | URL to endpoint where more details can be gotten | |||
orchestration-status | nsState | status | Orchestration status of the service component instance | ||
description | description | The description of service component instance | |||
flavourId | same with the ServiceComponentCatalogItem-Q1 | ||||
vnfInfoId | |||||
pnfInfo | |||||
virtualLinkInfo | |||||
vnffgInfo | |||||
sapInfo | |||||
nestedNsInfoId | |||||
nsScaleStatus | |||||
additionalAffinityOrAntiAffinityRule |
ExternalVirtualLink Description
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 Instance
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 |
VNF Node
SDC (VNF) | AAI | ECOMP IM | ETSI IFA014 (virtualLinkDesc) | Comments | Confirmed |
invariantUUID | |||||
UUID | vnfdId | ||||
customizationUUID | |||||
version | vnfdVersion | ||||
name | |||||
description | |||||
type | |||||
category | |||||
subcategory | |||||
resourceVendor | vnfProvider | ||||
resourceVendorRelease | |||||
resourceVendorModelNumber | |||||
nf_role | NF-Role | ||||
nf_naming_code | NFC-Naming_Code | ||||
nf_type | NF-TYPE | ||||
nf_code | NF-CODE | ||||
nf_naming | |||||
availability_zone_max_count | |||||
min_instances | |||||
max_instances | |||||
NF-FUNCTION | |||||
vnfProductName | |||||
vnfSoftwareVersion | |||||
vnfProductInfoName | |||||
vnfProductInfoDescription | |||||
vnfmInfo | |||||
localizationLanguage | |||||
defaultLocalizationLanguage | |||||
vnfExtCpd |
VNF Instance
AAI (generic-vnf) | ECOMP IM | ETSI IFA007 (VNF) | Comments | Confirmed |
vnf-id | vnfInstanceId | |||
vnf-name | vnfInstanceName | |||
vnf-name2 | vnfInstanceDescription | |||
vnf-type | VF Type | |||
service-id | nsInstanceId | |||
regional-resource-zone | ||||
prov-status | ||||
operational-status | ||||
license-key | ||||
equipment-role | ||||
orchestration-status | instantiationState instantiatedVnfInfo.vnfState instantiatedVnfInfo.scaleStatus | |||
heat-stack-id | ||||
mso-catalog-key | ||||
management-option | ||||
ipv4-oam-address | ||||
ipv4-loopback0-address | ||||
nm-lan-v6-address | ||||
management-v6-address | ||||
vcpu | ||||
vcpu-units | ||||
vmemory | ||||
vmemory-units | ||||
vdisk | ||||
vdisk-units | ||||
in-maint | ||||
is-closed-loop-disabled | ||||
resource-version | ||||
summary-status | ||||
encrypted-access-flag | ||||
entitlement-assignment-group-uuid | ||||
entitlement-resource-uuid | ||||
license-assignment-group-uuid | ||||
license-key-uuid | ||||
model-invariant-id | VNF Model ID | vnfdId | ||
model-version-id | VNF Model Version | vnfdVersion | ||
persona-model-version | ||||
model-customization-id | ||||
widget-model-id | ||||
widget-model-version | ||||
as-number | ||||
regional-resource-subzone | ||||
nf-type | ||||
nf-function | ||||
nf-role | ||||
nf-naming-code | ||||
selflink | ||||
ipv4-oam-gateway-address | ||||
ipv4-oam-gateway-address-prefix-length | ||||
vlan-id-outer | ||||
nm-profile-name | ||||
VLAN Range Plan | ||||
Homing Policy | ||||
Network Role | ||||
Target Node Prompt | ||||
VNF Name Prompt | ||||
VNF Naming Policy | ||||
VNF Network Tag | ||||
vnfProvider | ||||
vnfProductName | ||||
vnfSoftwareVersion | ||||
onboardedVnfPkgInfoId | ||||
extManagedVirtualLinkInfo | ||||
onboardedVnfPkgInfoId | ||||
vnfConfigurableProperty | ||||
metadata | ||||
extension |