This example shows how theĀ vCSCF VNF could have been implemented using the new data model.
The original model of VoLTE vCSCF
Code Block | ||
---|---|---|
| ||
#### "Interface" type ####
node_types:
com.nokia.vSCCF:
derived_from: onap.nodes.Function
properties:
requirements:
# connectivity requirements, application-level
- oamCpd_OM:
# TODO copy the requirement assignments from their origin CPs inside the topology
- lbCpd_OM:
- lbCpd_SIP:
- lbCpd_Diameter:
# summary of requirements for infrastructure
- oam_compute:
- lb_compute:
- oam_storage:
- lb_storage:
##### Implementation topology #####
topology_template:
node_types:
com.nokia.vdu.OAM:
derived_from: onap.nodes.Function
artifacts:
sw_image:
description: software image to launch a container with this function
type: tosca.artifacts.Deployment.Image.VM.ISO
file: ../../oam_vdu.iso
capabilities:
oamCpd_OM:
type: onap.capabilities.Bindable
oamCpd_Internal:
type: onap.capabilities.Bindable
requirements:
- storage:
capability: onap.capabilities.Storage
- host:
capabilities: onap.capabilities.Compute
com.nokia.vdu.LB:
derived_from: onap.nodes.Function
artifacts:
sw_image:
description: software image to launch a container with this function
type: tosca.artifacts.Deployment.Image.VM.ISO
file: ../../lb_vdu.iso
capabilities:
lbCpd_OM:
type: onap.capabilities.Bindable
lbCpd_SIP:
type: onap.capabilities.Bindable
oamCpd_Diameter:
type: onap.capabilities.Bindable
requirements:
- storage:
capability: onap.capabilities.Storage
- host:
capabilities: onap.capabilities.Compute
node_templates:
oam:
type: com.nokia.vdu.OAM
requirements:
- storage:
node_filter:
capabilities: onap.capabilities.Storage
properties:
storage_size:
- greater_or_equal: 100 GB
- host:
node_filter:
capabilities: onap.capabilities.Compute
properties:
num_cpus:
- equal: 4
memory_size:
- greater_or_equal: 100 MB
oamCpd_OM:
type: onap.nodes.CP
requirements:
- binding:
node: oam
capability: oamCpd_OM
# "linking" stays unsatisfied, but provides filtering info
- linking:
node_filter:
capabilities: onap.nodes.VL
properties:
cp_roles: [leaf]
protocols: [IPv4]
bitrate:
- greater_or_equal: 1024
oamCpd_Internal:
type: onap.nodes.CP
requirements:
- binding:
node: oam
capability: oamCpd_OM
- linking:
node: cscf_internal
capability: linking
lb:
type: com.nokia.vdu.LB
requirements:
- storage:
node_filter:
capabilities: onap.capabilities.Storage
properties:
storage_size:
- greater_or_equal: 100 GB
- host:
node_filter:
capabilities: onap.capabilities.Compute
properties:
num_cpus:
- equal: 4
memory_size:
- greater_or_equal: 100 MB
lbCpd_Internal:
type: onap.nodes.CP
requirements:
- binding:
node: lb
capability: lbCpd_Internal
- linking:
node: cscf_internal
capability: linking
lbCpd_OM:
type: onap.nodes.CP
requirements:
- binding:
node: lb
capability: lbCpd_OM
# "linking" stays unsatisfied, but provides filtering info
- linking:
node_filter:
capabilities: onap.nodes.VL
properties:
cp_roles: [leaf]
protocols: [IPv4]
bitrate:
- greater_or_equal: 1024
lbCpd_SIP:
type: onap.nodes.CP
requirements:
- binding:
node: lb
capability: lbCpd_SIP
# "linking" stays unsatisfied, but provides filtering info
- linking:
node_filter:
capabilities: onap.nodes.VL
properties:
cp_roles: [leaf]
protocols: [IPv4]
bitrate:
- greater_or_equal: 1024
lbCpd_Diameter:
type: onap.nodes.CP
requirements:
- binding:
node: lb
capability: lbCpd_Diameter
# "linking" stays unsatisfied, but provides filtering info
- linking:
node_filter:
capabilities: onap.nodes.VL
properties:
cp_roles: [leaf]
protocols: [IPv4]
bitrate:
- greater_or_equal: 1024
cscf_internal:
type: onap.nodes.VL
capabilities:
link:
type: onap.capabilities.Linkable
properties:
cp_roles: [leaf]
protocols: [IPv4]
bitrate: 1024
substitution_mapping:
type: com.nokia.vSCCF
requirements:
# connectivity requirements, application-level
oamCpd_OM: [oam, oamCpd_OM]
# TODO copy the requirement assignments from their origin CPs inside the topology
lbCpd_OM: [lb, lbCpd_OM]
lbCpd_SIP: [lb, lbCpd_SIP]
lbCpd_Diameter: [lb, lbCpd_Diameter]
# summary of requirements for infrastructure
oam_compute: [oam, host]
lb_compute: [lb, host]
oam_storage: [oam, storage]
lb_storage: [lb, storage]
|