...
Model Using Dangling Requirements
TODO: Diagram here
Image 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 here
Image 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]
|
...