Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Represent PNFs in the TOSCA model, using TOSCA syntax and semantics to define the mapping between PNF resources used in ONAP services and the physical devices themselves.

PNF

...

Modeling - Resources and Devices

Proposed The proposed approach is to use a “PNF Resource” node type (network function) representing a node type derived from NetworkFunction to represent the PNF’s appearance in as a resource in services, and a separate “PNF Device” node type to represent the device itself (in the model and in inventory).  TOSCA requirements and capabilities are used to map the PNF Resources resources within services to their corresponding PNF Devices.

CurrentlyAs is typical, all PNF devices are pre-populated in inventory before they are assigned for use by services.  This makes them a good candidate for Requirements/Capabilities logic, where the PNF Resource has a dangling requirement for a PNF Device.  The mapping would be established at run-time by selecting which pre-deployed (and inventoried) PNF Device is to be used.

In this model, a newPNFDevice Capability base type is defined for PNF Devices.  Individual PNF devices would declare this capability (or one derived from it).  Their matching PNF Resource types would declare a requirement for its PNF Device capability.  The resulting relationship would link the network function (PNF resource) to the physical device (PNF device) as a hosted on relationship.

PNF Resources are modelled modeled as peers to VNFs and Allotted Resources, all being derivations of a base “Network Function” Network Function” node type.  There is no explicit node type .  This would permit for PNF Resource.    This permits the three types to be used interchangeably in Abstract Node resolution.  The three resource types (VNF, PNF, AR) do not require explicit subtypes, but instead are identified by their defined requirements:

TOSCA Definitions

PNF Device Capability, exposed by all PNFs, allows PNF resources to be tied to individual device instances via a PNF Hosted On relationship.

Code Block
titlePNF Capabilities and Relationships
collapsetrue
capability_types:
   onap.capabilities.PNFDevice:
      derived_from: tosca.capabilities.Root
      description:  Declaration of being a PNF Device
      valid_source_types:  []
      properties:
         # TBD if any properties needed
      attributes:
         # TBD if any attributes needed

relationship_types:
   onap.relationships.PNFHostedOn:
      derived_from: tosca.relationships.HostedOn
      description:  Relationship between a PNF resources and the physical device
      properties:
         # TBD if any properties needed
      attributes:
         # TBD if any attributes needed

Base PNF Device node type, from which all individual PNF Devices would be derived.  There is no explicit PNF Resource node type, since all PNF resources may derive from the base Network Function type, and be identified as PNFs based on the existence of a PNF Device requirement.

...

titlePNF Device
collapsetrue

...

  • .

...

Examples

This example shows a specific PNF device, along with the PNF resource that it exposes for use in ONAP services.

Code Block
titlePNF Example
collapsetrue
# A specific capability for this firewall PNF device
capability_types:
   vendor.capabilities.pnfDevice.MyFirewall:
      derived_from: onap.capabilities.PNFDevice
      description:  Declaration of being a specific PNF Device

# node types for the Firewall PNF device and corresponding PNF Resource
node_types:
   vendor.nodes.devices.pnfs.MyFirewall:
      derived_from: onap.nodes.PNFDevice
      description:  A PNF Firewall Device
      properties:
         # as needed
      attributes:
         # as needed
      capabilities:
         pnf_device:
            type:  vendor.capabilities.pnfDevice.MyFirewall

   # My Firewall PNF Resource node type.
   # Note that this could derive from an abstract Firewall node type for run-time selection.
   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:  vendor.capabilities.pnfDevice.MyFirewall
               relationship: onap.relationships.PNFHostedOn
               node: vendor.nodes.devices.pnfs.MyFirewall

...