...
Model Using Dangling Requirements
TODO: Diagram hereImage Added
Code Block |
---|
title | VNF Template |
---|
linenumbers | true |
---|
collapse | true |
---|
|
node_types:
vendorXXX.nodes.vfc.HRU:
derived_from: onap.nodes.NetworkFunctionComponent
artifacts:
image:
description: deployment image
type: tosca.artifacts.Deployment.Image
file: HRU_Image.iso
properties:
aaa:
type: string
required: false
requirements:
- storage_attachment_1:
capability: onap.capabilities.StorageAttachment
occurrences: [1, 1]
capabilities:
bind_intra_1:
type: onap.capabilities.Bindable
occurrences: [1, 1]
bind_intra_2:
type: onap.capabilities.Bindable
occurrences: [1, 1]
bind_ext_1:
type: onap.capabilities.Bindable
occurrences: [1, 1]
bind_ext_2:
type: onap.capabilities.Bindable
occurrences: [1, 1]
vendorXXX.nodes.vfc.CCU:
derived_from: onap.nodes.NetworkFunctionComponent
artifacts:
image:
description: deployment image
type: tosca.artifacts.Deployment.Image
file: CCU_Image.iso
properties:
bbb:
type: integer
constraints:
- valid_values: [1, 5, 11]
required: false
capabilities:
bind_1:
type: onap.capabilities.Bindable
occurrences: [1, 1]
vendorXXX.nodes.vfc.VPU:
derived_from: onap.nodes.NetworkFunctionComponent
artifacts:
image:
description: deployment image
type: tosca.artifacts.Deployment.Image
file: VPU_Image.iso
properties:
ccc:
type: string
required: false
requirements:
- storage_attachment_1:
capability: onap.capabilities.StorageAttachment
occurrences: [1, 1]
capabilities:
bind_intra_1:
type: onap.capabilities.Bindable
occurrences: [1, 1]
bind_intra_2:
type: onap.capabilities.Bindable
occurrences: [1, 1]
topology_template:
inputs:
node_templates:
hru:
type: vendorXXX.nodes.vfc.HRU
properties:
catalog_info:
invariantUUID: 63007034-0330-4132-b51e-87c6a64065f3
UUID: 9c6a1271-b443-48e3-8049-f5433db3d5f2
customizationUUID: 7f4e5e75-566c-48e8-99a7-c40cec1e4fd1
version: '2.0'
aaa: 'lalala'
requirements:
- host:
node_filter:
capabilities:
onap.capabilities.Compute:
properties:
- num_cpus: {greater_or_equal: 2}
- mem_size: {greater_or_equal: 1GB}
- local_storage_size: {greater_or_equal: 16GB}
- storage_attachment_1:
node_filter:
capabilities:
onap.capabilities.StorageAttachment:
properties:
- storage_size: {greater_or_equal: 100GB}
hru_ext_cp1:
type: onap.nodes.CP
properties:
catalog_info:
invariantUUID: 63007034-0330-4132-b51e-87c6a64065f3
UUID: 9c6a1271-b443-48e3-8049-f5433db3d5f2
customizationUUID: 7f4e5e75-566c-48e8-99a7-c40cec1e4fd1
version: '2.0'
requirements:
- bind:
node: hru
capability: bind_ext_1
- link:
node_filter:
capabilities:
onap.capabilities.Linkable:
properties:
- protocol: {equal: Ethernet}
- bitrate: {greater_or_equal: 10 Kbps}
hru_ext_cp2:
type: onap.nodes.CP
properties:
catalog_info:
invariantUUID: 63007034-0330-4132-b51e-87c6a64065f3
UUID: 9c6a1271-b443-48e3-8049-f5433db3d5f2
customizationUUID: 7f4e5e75-566c-48e8-99a7-c40cec1e4fd1
version: '2.0'
requirements:
- bind:
node: hru
capability: bind_ext_2
- link:
node_filter:
capabilities:
onap.capabilities.Linkable:
properties:
- protocol: {equal: Ethernet}
- bitrate: {greater_or_equal: 10 Kbps}
hru_int_cp1:
type: onap.nodes.CP
properties:
catalog_info:
invariantUUID: 63007034-0330-4132-b51e-87c6a64065f3
UUID: 9c6a1271-b443-48e3-8049-f5433db3d5f2
customizationUUID: 7f4e5e75-566c-48e8-99a7-c40cec1e4fd1
version: '2.0'
requirements:
- bind:
node: hru
capability: bind_intra_1
- link:
node: intra1
capability: link
hru_int_cp2:
type: onap.nodes.CP
properties:
catalog_info:
invariantUUID: 63007034-0330-4132-b51e-87c6a64065f3
UUID: 9c6a1271-b443-48e3-8049-f5433db3d5f2
customizationUUID: 7f4e5e75-566c-48e8-99a7-c40cec1e4fd1
version: '2.0'
requirements:
- bind:
node: hru
capability: bind_intra_2
- link:
node: intra2
capability: link
ccu:
type: vendorXXX.nodes.vfc.CCU
properties:
catalog_info:
invariantUUID: 63007034-0330-4132-b51e-87c6a64065f3
UUID: 9c6a1271-b443-48e3-8049-f5433db3d5f2
customizationUUID: 7f4e5e75-566c-48e8-99a7-c40cec1e4fd1
version: '2.0'
bbb: 5
requirements:
- host:
node_filter:
capabilities:
onap.capabilities.Compute:
properties:
- num_cpus: {greater_or_equal: 2}
- mem_size: {greater_or_equal: 1GB}
- local_storage_size: {greater_or_equal: 16GB}
ccu_cp1:
type: onap.nodes.CP
properties:
catalog_info:
invariantUUID: 63007034-0330-4132-b51e-87c6a64065f3
UUID: 9c6a1271-b443-48e3-8049-f5433db3d5f2
customizationUUID: 7f4e5e75-566c-48e8-99a7-c40cec1e4fd1
version: '2.0'
requirements:
- bind:
node: ccu
capability: bind_1
- link:
node: intra1
capability: link
vpu:
type: vendorXXX.nodes.vfc.VPU
properties:
catalog_info:
invariantUUID: 63007034-0330-4132-b51e-87c6a64065f3
UUID: 9c6a1271-b443-48e3-8049-f5433db3d5f2
customizationUUID: 7f4e5e75-566c-48e8-99a7-c40cec1e4fd1
version: '2.0'
ccc: 'lalala'
requirements:
- host:
node_filter:
capabilities:
onap.capabilities.Compute:
properties:
- num_cpus: {greater_or_equal: 2}
- mem_size: {greater_or_equal: 1GB}
- local_storage_size: {greater_or_equal: 16GB}
- storage_attachment_1:
node_filter:
capabilities:
onap.capabilities.StorageAttachment:
properties:
- storage_size: {greater_or_equal: 100GB}
vpu_cp1:
type: onap.nodes.CP
properties:
catalog_info:
invariantUUID: 63007034-0330-4132-b51e-87c6a64065f3
UUID: 9c6a1271-b443-48e3-8049-f5433db3d5f2
customizationUUID: 7f4e5e75-566c-48e8-99a7-c40cec1e4fd1
version: '2.0'
requirements:
- bind:
node: vpu
capability: bind_intra_1
- link:
node: intra1
capability: link
vpu_cp2:
type: onap.nodes.CP
properties:
catalog_info:
invariantUUID: 63007034-0330-4132-b51e-87c6a64065f3
UUID: 9c6a1271-b443-48e3-8049-f5433db3d5f2
customizationUUID: 7f4e5e75-566c-48e8-99a7-c40cec1e4fd1
version: '2.0'
requirements:
- bind:
node: vpu
capability: bind_intra_2
- link:
node: intra2
capability: link
intra1:
type: onap.nodes.VL
properties:
catalog_info:
invariantUUID: 63007034-0330-4132-b51e-87c6a64065f3
UUID: 9c6a1271-b443-48e3-8049-f5433db3d5f2
customizationUUID: 7f4e5e75-566c-48e8-99a7-c40cec1e4fd1
version: '2.0'
capabilities:
link:
properties:
protocols: TCP
bitrate: 10 Kbps
intra2:
type: onap.nodes.VL
properties:
catalog_info:
invariantUUID: 63007034-0330-4132-b51e-87c6a64065f3
UUID: 9c6a1271-b443-48e3-8049-f5433db3d5f2
customizationUUID: 7f4e5e75-566c-48e8-99a7-c40cec1e4fd1
version: '2.0'
capabilities:
link:
properties:
protocols: Ethernet
bitrate: 10 Kbps
substitution_mappings:
type: vendorXXX.nodes.vnf.vSBC
requirements:
ext_link_1: [hru_ext_cp1, link]
ext_link_2: [hru_ext_cp2, link]
hru.host: [hru, host]
hru.storage_attachment_1: [hru, storage_attachment_1]
ccu.host: [ccu, host]
vpu.host: [vpu, host]
vpu.storage_attachment_1: [vpu, storage_attachment_1]
|
...
Code Block |
---|
title | vSCB VNF Type |
---|
linenumbers | true |
---|
collapse | true |
---|
|
node_types:
vendorXXX.nodes.vnf.vSBC:
derived_from: onap.nodes.Resource.NetworkFunction
requirements:
- ext_link_1:
node_filter:
capabilities:
onap.capabilities.Linkable:
properties:
- protocol: {equal: Ethernet}
- bitrate: {greater_or_equal: 10 Kbps}
- ext_link_2:
node_filter:
capabilities:
onap.capabilities.Linkable:
properties:
- protocol: {equal: Ethernet}
- bitrate: {greater_or_equal: 10 Kbps}
- hru.host:
node_filter:
capabilities:
onap.capabilities.Compute:
properties:
- num_cpus: {greater_or_equal: 2}
- mem_size: {greater_or_equal: 1GB}
- local_storage_size: {greater_or_equal: 16GB}
- hru.storage_attachment_1:
node_filter:
capabilities:
onap.capabilities.StorageAttachment:
properties:
- storage_size: {greater_or_equal: 100GB}
- ccu.host:
node_filter:
capabilities:
onap.capabilities.Compute:
properties:
- num_cpus: {greater_or_equal: 2}
- mem_size: {greater_or_equal: 1GB}
- local_storage_size: {greater_or_equal: 16GB}
- vpu.host:
node_filter:
capabilities:
onap.capabilities.Compute:
properties:
- num_cpus: {greater_or_equal: 2}
- mem_size: {greater_or_equal: 1GB}
- local_storage_size: {greater_or_equal: 16GB}
- vpu.storage_attachment_1:
node_filter:
capabilities:
onap.capabilities.StorageAttachment:
properties:
- storage_size: {greater_or_equal: 100GB}
|
...
- the function components HRU, CCU, and VPU are now "wired" to abstract Compute and Storage nodes, and the substitution mapping is now exposing the requirements of these abstract nodes.
- now the model is able to explicitly express sharing of infrastructure between functional components
- some precautions should have been taken in order to mitigate the risk of "capability-like requirements". The host capability of the AbstractCompute nodes and the attached_storage capability of the AbstractStorage node are not mapped through the substitution mapping, even though not all of their occurrences have been spent in the topology
TODO: Diagram hereImage Added
Code Block |
---|
title | VNF Template |
---|
linenumbers | true |
---|
collapse | true |
---|
|
topology_template:
inputs:
node_templates:
compute_1:
type: onap.nodes.AbstractCompute
properties:
catalog_info:
invariantUUID: 63007034-0330-4132-b51e-87c6a64065f3
UUID: 9c6a1271-b443-48e3-8049-f5433db3d5f2
customizationUUID: 7f4e5e75-566c-48e8-99a7-c40cec1e4fd1
version: '2.0'
capabilities:
host:
requirements:
- host:
node_filter:
capabilities:
onap.capabilities.Compute:
properties:
- num_cpus: {greater_or_equal: 2}
- mem_size: {greater_or_equal: 1GB}
- local_storage_size: {greater_or_equal: 16GB}
compute_2:
type: onap.nodes.AbstractCompute
properties:
catalog_info:
invariantUUID: 63007034-0330-4132-b51e-87c6a64065f3
UUID: 9c6a1271-b443-48e3-8049-f5433db3d5f2
customizationUUID: 7f4e5e75-566c-48e8-99a7-c40cec1e4fd1
version: '2.0'
capabilities:
host:
requirements:
- host:
node_filter:
capabilities:
onap.capabilities.Compute:
properties:
- num_cpus: {greater_or_equal: 2}
- mem_size: {greater_or_equal: 1GB}
- local_storage_size: {greater_or_equal: 16GB}
storage_0:
type: onap.nodes.AbstractStorage
properties:
catalog_info:
invariantUUID: 63007034-0330-4132-b51e-87c6a64065f3
UUID: 9c6a1271-b443-48e3-8049-f5433db3d5f2
customizationUUID: 7f4e5e75-566c-48e8-99a7-c40cec1e4fd1
version: '2.0'
capabilities:
storage_attachment:
requirements:
- storage_attachment:
node_filter:
capabilities:
onap.capabilities.AttachedStorage:
properties:
- storage_size: {greater_or_equal: 16GB}
- storage_type: {equal: block}
hru:
type: vendorXXX.nodes.vfc.HRU
properties:
catalog_info:
invariantUUID: 63007034-0330-4132-b51e-87c6a64065f3
UUID: 9c6a1271-b443-48e3-8049-f5433db3d5f2
customizationUUID: 7f4e5e75-566c-48e8-99a7-c40cec1e4fd1
version: '2.0'
aaa: 'lalala'
requirements:
- host:
node: compute_1
capability: host
- storage_attachment_1:
node: storage_0
capability: storage_attachment
hru_ext_cp1:
type: onap.nodes.CP
properties:
catalog_info:
invariantUUID: 63007034-0330-4132-b51e-87c6a64065f3
UUID: 9c6a1271-b443-48e3-8049-f5433db3d5f2
customizationUUID: 7f4e5e75-566c-48e8-99a7-c40cec1e4fd1
version: '2.0'
requirements:
- bind:
node: hru
capability: bind_ext_1
- link:
node_filter:
capabilities:
onap.capabilities.Linkable:
properties:
- protocol: {equal: Ethernet}
- bitrate: {greater_or_equal: 10 Kbps}
hru_ext_cp2:
type: onap.nodes.CP
properties:
catalog_info:
invariantUUID: 63007034-0330-4132-b51e-87c6a64065f3
UUID: 9c6a1271-b443-48e3-8049-f5433db3d5f2
customizationUUID: 7f4e5e75-566c-48e8-99a7-c40cec1e4fd1
version: '2.0'
requirements:
- bind:
node: hru
capability: bind_ext_2
- link:
node_filter:
capabilities:
onap.capabilities.Linkable:
properties:
- protocol: {equal: Ethernet}
- bitrate: {greater_or_equal: 10 Kbps}
hru_int_cp1:
type: onap.nodes.CP
properties:
catalog_info:
invariantUUID: 63007034-0330-4132-b51e-87c6a64065f3
UUID: 9c6a1271-b443-48e3-8049-f5433db3d5f2
customizationUUID: 7f4e5e75-566c-48e8-99a7-c40cec1e4fd1
version: '2.0'
requirements:
- bind:
node: hru
capability: bind_intra_1
- link:
node: intra1
capability: link
hru_int_cp2:
type: onap.nodes.CP
properties:
catalog_info:
invariantUUID: 63007034-0330-4132-b51e-87c6a64065f3
UUID: 9c6a1271-b443-48e3-8049-f5433db3d5f2
customizationUUID: 7f4e5e75-566c-48e8-99a7-c40cec1e4fd1
version: '2.0'
requirements:
- bind:
node: hru
capability: bind_intra_2
- link:
node: intra2
capability: link
ccu:
type: vendorXXX.nodes.vfc.CCU
properties:
catalog_info:
invariantUUID: 63007034-0330-4132-b51e-87c6a64065f3
UUID: 9c6a1271-b443-48e3-8049-f5433db3d5f2
customizationUUID: 7f4e5e75-566c-48e8-99a7-c40cec1e4fd1
version: '2.0'
bbb: 5
requirements:
- host:
node: compute_2
capability: host
ccu_cp1:
type: onap.nodes.CP
properties:
catalog_info:
invariantUUID: 63007034-0330-4132-b51e-87c6a64065f3
UUID: 9c6a1271-b443-48e3-8049-f5433db3d5f2
customizationUUID: 7f4e5e75-566c-48e8-99a7-c40cec1e4fd1
version: '2.0'
requirements:
- bind:
node: ccu
capability: bind_1
- link:
node: intra1
capability: link
vpu:
type: vendorXXX.nodes.vfc.VPU
properties:
catalog_info:
invariantUUID: 63007034-0330-4132-b51e-87c6a64065f3
UUID: 9c6a1271-b443-48e3-8049-f5433db3d5f2
customizationUUID: 7f4e5e75-566c-48e8-99a7-c40cec1e4fd1
version: '2.0'
ccc: 'lalala'
requirements:
requirements:
- host:
node: compute_2
capability: host
- storage_attachment_1:
node: storage_0:
capability: storage_attachment
vpu_cp1:
type: onap.nodes.CP
properties:
catalog_info:
invariantUUID: 63007034-0330-4132-b51e-87c6a64065f3
UUID: 9c6a1271-b443-48e3-8049-f5433db3d5f2
customizationUUID: 7f4e5e75-566c-48e8-99a7-c40cec1e4fd1
version: '2.0'
requirements:
- bind:
node: vpu
capability: bind_intra_1
- link:
node: intra1
capability: link
vpu_cp2:
type: onap.nodes.CP
properties:
catalog_info:
invariantUUID: 63007034-0330-4132-b51e-87c6a64065f3
UUID: 9c6a1271-b443-48e3-8049-f5433db3d5f2
customizationUUID: 7f4e5e75-566c-48e8-99a7-c40cec1e4fd1
version: '2.0'
requirements:
- bind:
node: vpu
capability: bind_intra_2
- link:
node: intra2
capability: link
intra1:
type: onap.nodes.VL
properties:
catalog_info:
invariantUUID: 63007034-0330-4132-b51e-87c6a64065f3
UUID: 9c6a1271-b443-48e3-8049-f5433db3d5f2
customizationUUID: 7f4e5e75-566c-48e8-99a7-c40cec1e4fd1
version: '2.0'
capabilities:
link:
properties:
protocols: TCP
bitrate: 10 Kbps
intra2:
type: onap.nodes.VL
properties:
catalog_info:
invariantUUID: 63007034-0330-4132-b51e-87c6a64065f3
UUID: 9c6a1271-b443-48e3-8049-f5433db3d5f2
customizationUUID: 7f4e5e75-566c-48e8-99a7-c40cec1e4fd1
version: '2.0'
capabilities:
link:
properties:
protocols: Ethernet
bitrate: 10 Kbps
substitution_mappings:
type: vendorXXX.nodes.vnf.vSBC
requirements:
ext_link_1: [hru_ext_cp1, link]
ext_link_2: [hru_ext_cp2, link]
host_1: [compute_1, host]
host_2: [compute_2, host]
storage_attachment_1: [storage_0, storage_attachment]
|
Code Block |
---|
title | VNF Type |
---|
linenumbers | true |
---|
collapse | true |
---|
|
node_types:
vendorXXX.nodes.vnf.vSBC:
derived_from: onap.nodes.Resource.NetworkFunction
requirements:
ext_link_1: [hru_ext_cp1, link]
ext_link_2: [hru_ext_cp2, link]
host_1: [compute_1, host]
host_2: [compute_2, host]
storage_attachment_1: [storage_0, storage_attachment]
|
...