...
Name | Required | Type | Constraints | Description |
---|
nf_classification | yes | onap.datatypes.Classification |
| Inherited from onap.nodes.Resource. Structured description of this function. For abstract function nodes, may be used for finding an implementation. |
...
Code Block |
---|
title | TOSCA Definition |
---|
linenumbers | true |
---|
|
node_types:
onap.nodes.NetworkFunction:
description: |
a base of the ONAP hierarchy of network functions
If you have a requirement for a factory, you're allotted
If you have a requirement for a PNFdevice, you're physical
If you have neither, you're virtual.
Expect to see network functions be group members for naming and homing.
derived_from: onap.nodes.Resource
properties:
nf_# classification: is inherited description: |
data governed value used by operations to filter network functions
type: onap.datatypes.Classification
required: truefrom onap.nodes.Resource, type, role, function should be required
capabilities:
# Expect to define these in the derived node_type, with mappings to appropriate the NetworkFunctionComponent CP
# This exposes external CPs of the NF.
requirements:
# Expect to define these in the derived node_type, with mappings to appropriate inner nodes
|
...
Code Block |
---|
title | Example #1: Abstract firewall node type |
---|
linenumbers | true |
---|
collapse | true |
---|
|
node_types:
onap.nodes.functions.AbstractFirewall:
derived_from: onap.nodes.NetworkFunction
properties:
nf_classification:
constraints:
- equal: {type: "Firewall"}
requirements:
- unprotected:
capability: onap.capabilities.Linkable
- protected:
capability: onap.capabilities.Linkable
|
...
Code Block |
---|
title | Example #2: A concrete firewall node type provided as an allotted resource |
---|
linenumbers | true |
---|
collapse | true |
---|
|
node_types:
vendorYYY.nodes.SpecialAllottedFirewall:
derived_from: onap.nodes.functions.AbstractFirewall
requirements:
- management:
capability: onap.capabilities.Linkable
- provider_service:
node: vendorYYY.service.AllottedFirewallProviderService
capability: onap.capabilities.AllottedResourceProvider
relationship: onap.relationships.AllottedBy |
A NetworkFunction is a resource which is able to fulfill a well-defined, non-trivial functionality for a service.
Well-defined means that its specialty can be captured by a word understandable across the industry, such as a firewall, a router, a load balancer, etc.
It is non-trivial in many senses. First, a NetworkFunction is non-trivial in terms of its connectivity with the outer world. A NetworkFunction-based type is normally defined with multiple capabilities and requirements of different types, which are serving different purposes. Since there is no typical “connectivity set” shared by all function, it cannot be captured by means of TOSCA in the base NetworkFunction node type. That is, the NetworkFunction node type is practically unusable per se. It needs to be further sub-typed, along with extending it with additional capabilities and requirements.
A NetworkFunction is also non-trivial in terms of its internal structure. A NetworkFunction normally has its own internal topology that spans over multiple VMs and has internal networks. A NetworkFunction-typed node is expected to be implemented through substitution. This substitution can be specified by the service designer in design time. However, the service designer may also leave a NetworkFunction-typed node without design-time implementation. In this case, the most appropriate substitution should be found by the Orchestrator in run time.
Code Block |
---|
title | onap.nodes.NetworkFunction |
---|
linenumbers | true |
---|
collapse | true |
---|
|
onap.nodes.NetworkFunction:
description: |
a base of the ONAP hierarchy of network functions
If you have a requirement for a factory, you're allotted
If you have a requirement for a PNFdevice, you're physical
If you have neither, you're virtual.
Expect to see network functions be group members for naming and homing.
derived_from: onap.nodes.Resource
properties:
nf_classification:
description: |
data governed value used by operations to filter network functions
type: onap.datatypes.Classification
required: true
capabilities:
# Expect to define these in the derived node_type, with mappings to appropriate the NetworkFunctionComponent CP
# This exposes external CPs of the NF.
requirements:
# Expect to define these in the derived node_type, with mappings to appropriate inner nodes
|
Examples
Code Block |
---|
linenumbers | true |
---|
collapse | true |
---|
|
node_types:
onap.nodes.functions.AbstractFirewall:
derived_from: onap.nodes.NetworkFunction
properties:
nf_classification:
constraints:
- equal: {type: "Firewall"}
requirements:
- unprotected:
capability: onap.capabilities.Linkable
- protected:
capability: onap.capabilities.Linkable
vendorXXX.nodes.VerySpecialFirewall:
derived_from: onap.nodes.functions.AbstractFirewall
requirements:
- management:
capability: onap.capabilities.Linkable
|
Examples
Code Block |
---|
linenumbers | true |
---|
collapse | true |
---|
|
node_types:
onap.nodes.functions.AbstractFirewall:
derived_from: onap.nodes.NetworkFunction
properties:
nf_classification:
type: "Firewall"
requirements:
- unprotected:
capability: onap.capabilities.Linkable
- protected:
capability: onap.capabilities.Linkable
vendorXXX.nodes.VerySpecialFirewall:
derived_from: onap.nodes.functions.AbstractFirewall
requirements:
- management:
capability: onap.capabilities.Linkable
|