At the Montreal joint architecture/modeling meeting, there was discussion on network service vs. service. Data was presented regarding the fields needed in the instance data model by AAI and VFC. I attempted to capture an initial proposal for comment.
There are a number of items that I need more understanding about:
- what are nsdmodel, scaleparameters, and inputparameters?
- flavourid and nslevel seem like they should be relationship to other entities instead of "foreign keys", is that true?
In addition, we need a discussion on some items:
- AT&T has used a type/role/function classification function to provide a standard way to encode some data for filtering that is used in place of descriptions. I'd like to propose that for consideration instead of a free form description field (or a field that takes different ungoverned values based on the flow being written). Establishing data governance around these values can be instrumental for your operations teams and your automation.
- It's like to propose a datatype for "ProviderDetails" which captures fields like the descriptorId, descriptorVersion, productName, packageId, etc. A property of type ProviderDetails would be added to the internal design time model for Service and NetworkFunction.
Let's use three terms:
- OnboardingServiceDescriptor (of which one format is the SOL 001 NSD)
- InternalServiceDescriptor (which is what SDC produces as the service model that the components use)
- ServiceInstance (the results of an instantiation from the InternalServiceDescriptor)
People I'm expecting to participate in this conversation are as follows:
But all are welcome.
AAI | VFC | What is it | Belongs in | Action | |
service-instance-id | id | unique id of the instance | ServiceInstance | keep in AAI service-instance | |
nspackageid | unique id of the package | InternalServiceDescriptor | Add providerDetails data type of which this would be a property, add a property of type providerDetails to InternalServiceDescriptor | ||
service-instance-name | name | name of the instance | ServiceInstance | keep in AAI service-instance | |
description | description of the instance | ServiceInstance or possibly InternalServiceDescriptor | Discuss merits of service-type/service-role construct instead of description | ||
model-invariant-id | invariant id across all versions of the same InternalServiceDescriptor model | InternalServiceDescriptor | keep in AAI service-instance API (I think it's really a relationship internally) | ||
model-version-id | unique id of a version of a model in the InternalServiceDescriptor model | InternalServiceDescriptor | keep in AAI service-instance API (I think it's really a relationship internally) | ||
service-type | should be discussed, should just be denormalized filtering data that has a data steward | InternalServiceDescriptor, could be copied to ServiceInstance | possibly replaces description | ||
service-role | should be discussed, should just be denormalized filtering data that has a data steward | InternalServiceDescriptor, could be copied to ServiceInstance | possibly replaces description | ||
service-instance-location-id | retire | retire | Discuss merits of having a customer-premise "table" and establish relationship | ||
bandwidth-total | retire | retire | retire | ||
property-value | We think this is an error | retire | remove | ||
environment-context | extension, not required | ServiceInstance | ignore for now, may be renamed | defines the use and criticality of a virtual function which is used to ensure hypervisor separation (non-shared hosts) between vf functions of different use or criticality (e.g. Critical_Revenue-Bearing, Useful_Non-Revenue) | |
workload-context | extension, not required | ServiceInstance | ignore for now, may be renamed | describes the purpose. VNF End-to-End testing for the Casablanca release would be VNF-E2E-Casablanca as an example | |
vnf-type | was this a typo on the slide? This is not in AAI in ONAP. | I think this is a mistake | |||
created-at | createtime | refactor, just expose AAI data but as system set, read only | ServiceInstance | expose, needs to be read only | |
updated-at | lastuptime | refactor, just expose AAI data but as system set, read only | ServiceInstance | expose, needs to be read only | |
persona-model-id | retire | remove | |||
widget-model-id | retire | remove | |||
widget-model-version | retire | remove | |||
vhn-portal-url | This should not be on the global type but the derived type would have it and it could be stored as a schemaless field on the service-instance vertex | refactor | |||
orchestration-status | status | SO has an enumeration of values. VFC probably does too and odds are they aren't the same. | |||
nsdId | Unique ID of the network service descriptor | InternalServiceDescriptor, could be copied to ServiceInstance | Add providerDetails data type of which this would be a property, add a property of type providerDetails to InternalServiceDescriptor model | ||
sdncontrollerid | see selflink | ServiceInstance | Discuss | ||
nslevel | propose calling it instantation-level (so much indirection in the ETSI NFV types….) | ServiceInstance | Discuss whether this is a relationship to another entity | ||
flavourid | where is the data model definition of this? Can a flavour be a object with name/value pairs which is referred to by the service model and is common for all instances created from this service model? | ServiceInstance | Discuss whether this is a relationship to another entity | ||
nsdmodel | What is this? | ||||
scaleparams | What is this? Is this just an internal field of VF-C? I don't see it referenced in the etsi.nfv.nodes.NS | ||||
resource-version | Used for concurrency enforcement with clients of AAI | ServiceInstance | keep | ||
input-parameters | inputparameters | For SO to pass parameters for closed loop, does this have ONAP wide applicability for closed loop functions? | |||
selflink | Should have been populated with the link to the same resource in the responsible source of truth entity, e.g., controller. |