Description
Nodes of this type represent a connection point of a resource. This can be an L2 network interface, a port, a VLAN subinterface, etc.
The Linkable-type requirement of the CP nodes are more important for modeling than the node type itself. When a the Linkable-type requirement of a CP is not used for an internal link and exposed through a substitution mapping of a model, this CP is external.
Capabilities
Name | Required | Type | Constraints | Description |
---|---|---|---|---|
Requirements
Name | Required | Type | Description |
---|---|---|---|
binding | 0..1 | onap.capabilities.Bindable | The binding with a Network Function Component |
link | 0..1 | onap.capabilities.Linkable | The link to a network. When left dangling, the CP is external. |
TOSCA Definition
node_types: onap.nodes.CP: derived_from: tosca.nodes.Root description: a connection point properties: catalog_info: type: onap.datatypes.CatalogInfo description: required: true # generated by Design Time Catalog once, then never changed role: type: string description: the role a template plays in a topology required: false attributes: instance_name: type: string description: the name of the run-time instance of in the deployment requirements: - binding: description: binding with a NetworkFunctionComponent capability: onap.capabilities.Bindable occurrences: [1, 1] # exactly one occurrence relationships: onap.relationships.BindsTo - link: description: link to a network. If left dangling, it is external. capability: onap.capabilities.Linkable occurrences: [1, 1] # Exactly one occurrence; # either spend it with an internal VL (and this is how this CP becomes internal) # or leave it unsatisfied (and thus make the CP external) relationships: onap.relationships.LinksTo # without a relationship, a TOSCA requirement cannot have properties :(
Example 1: Two resources communicating through an internal network
Example 2: A topology with an external CP
External CP
node_templates: # Other nodes, omitted #... ext_cp_123: type: onap.nodes.CP requirements: - bind: # bound to a component node in this topology node: vnfc_01 capability: bind - link: node_filter: capabilities: - onap.capabilities.Linkable properties: protocols: - contains_all: [IPv4, TCP] # WARNING: 'contains_all' is not a standard TOSCA constraint ! roles: - contains_any: [peer] # WARNING: 'contains_any' is not a standard TOSCA constraint ! bitrate: - greater_or_equal: 1000