Description
A NetworkFunction is a resource which is able to fulfill a well-defined, non-trivial functionality for a service.
...
- the nf_classification property - provides useful data governed filtering criteria, whose values should not be used in any ONAP platform logic but which could be used in model-specific logic.
- the name of a sub-type - no ONAP platform logic should ever use the name of a sub-type.
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.
...
TODO: explain why this type does not have any capabilities and requirements
Properties
Name | Required | Type | Constraints | Description |
---|---|---|---|---|
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. |
Attributes
Nothing special
Capabilities
TODO: explain why this type does not have any capabilities and requirements
Requirements
TODO: explain why this type does not have any capabilities and requirements
TOSCA Definition
Code Block | ||||
---|---|---|---|---|
| ||||
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: # classification is inherited from onap.nodes.Resource, type, role, function should be required provider_details: type: onap.datatypes.ProviderDetails required: false attributes: localization_language: type: SOME STANDARD ENUMERATION MUST EXIST required: false description: instance-specific localization chosen for driving human-readable interfaces 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
The examples below show possible type definitions of a firewall network function abstraction.
...
The type VerySpecialFirewall below is an example of how could look a concrete firewall node type provided by a vendor could look. This vendor-specific type extends the connectivity schema of its basic type by the connection to an additional management network.
...
The type SpecialAllottedFirewall below is an example of how could look a concrete firewall node type that is allotted from some larger infrastructure firewall service could look. This specific type extends the connectivity schema of its basic type by the connection to an additional management network. It also adds an allotted resource provider requirement, which designates it as an allotted resource (the providing service itself is not shown).
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
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 |
The type SpecialPhysicalFirewall below is an example of how a concrete node type that is a traditional PNF could look. This specific type extends the connectivity schema of its basic type by the connection to an additional management network. It also adds a PNFDevice requirement, which designates it as physical network function.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
node_types:
vendor.nodes.resources.network_functions.MyFirewallPNF:
derived_from: onap.nodes.Resources.NetworkFunction
description: A PNF Firewall Resource
properties:
# as needed
attributes:
# as needed
requirements:
- pnf_device:
capabilities:
type: onap.capabilities.pnfs.MyFirewall
relationship: onap.relationships.PNFHostedOn
node: vendor.nodes.devices.pnfs.MyFirewall |