Versions Compared

Key

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

...

  • Integration between the ONAP and TOSCA Specs models: based on the tosca.capabilities.network.Linkable and tosca.capabilities.network.Bindable capability types, and, perhaps, substitution of the tosca.nodes.Network nodes
  • The connectivity is modeled on the "application" level only (VFC), not on the "infrastructure" level ("VDU"/Container)
  • VFC --< ← CP → >-- VL --< ← CP → VFC ← CP → 
  • Same node type to model both internal and external CPs
  • QoS modeled as TOSCA policies (targeting VLs)
  • Address assignment as TOSCA policies (tergeting CPs)
  • CP Address is an attribute, not a property


Image Added




Panel
borderColorblue
borderStylesolid
titleONAP Normative Types
Code Block
titleData Types
linenumberstrue
collapsetrue
data_types:
  onap.datatypes.AddressData:
    # = tosca.datatypes.nfv.AddressData

Code Block
titleCapability Types
linenumberstrue
collapsetrue
capability_types:
  tosca.capabilities.network.Linkable:
  # a capability type from the TOSCA Specs
  
  tosca.capabilities.network.Bindable:
  # a capability type from the TOSCA Specs  
  
  ##### ONAP derivations - to provide information required by the IM
  onap.capabilities.Linkable:
    derived_from: tosca.capabilities.network.Linkable
    description: an ability of a network to have traffic through a CP
  
  onap.capabilities.Bindable:
    derived_from: tosca.capabilities.network.Bindable
    description: an indication that the owner node can communicate through a CP

Code Block
titlePolicy Types
linenumberstrue
collapsetrue
policy_types:
  onap.policy.AddressAssignment:
    description: governs address assignment to CPs
    derived_from: tosca.policies.Root
    properties:
      automatic_assignment:
        type: boolean
        required: false
      address_type:
        type: string
        required: false
        constraints:
          - valid_values: [IPv4, IPv6, Mac]
    # create derived types to carry extra info, like is_floating_ip, pool size/id, etc.

  onap.policies.QualityOfService:
    description: specifies a bunch of QoS parameters
    derived_from: tosca.policies.Root
    properties:
      max_latency:
      latency_variation:
      packet_loss_ratio:

Code Block
titleNode Types
linenumberstrue
collapsetrue
node_types:
  onap.nodes.CP:
    derived_from: onap.nodes.Resource
    description: a connection point
  requirements:
    - binding:
        description: binding with a VFC
        capability: onap.capabilities.Bindable
        occurrences: [1, 1] # exactly one occurrence
        relationships: onap.relationships.BindsTo
    - link:
        description: link to a network
        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 :( 
  attributes:
    address:
      type: onap.datatypes.AddressData
      description: the address received after assignment
  
  onap.nodes.VL:
    derived_from: onap.nodes.Resource
    description: a virtual link
    capabilities:
      link:
        type: onap.capabilities.Linkable
        occurrences: [0, UNBOUNDED] 
			# can interconnect an unlimited number of CPs

Code Block
titleRelationship Types
linenumberstrue
collapsetrue
# We need to be able to assign properties to requirements. 
# The TOSCA way to do it - by the requirement+relationship combination.


relationship_types:  
  onap.relationships.LinksTo:
    # very similar to the NFV VirtualLinksTo
    description: an association between a CP and a VL
    derived_from: tosca.relationships.DependsOn  # to participate in lifecycles
    interfaces:
      Configure:
        type: onap.interfaces.relationship.LinksTo.Configure
    properties:
      role:
        description: the role of the port on the network (e.g., Root, Leaf, Peer)
        type: string
      protocol:
        description: the protocol implemented by the port(e.g., Ethernet, TCP)
        type: string


Code Block
titleInterface Types
linenumberstrue
collapsetrue
interfaces:
  onap.interfaces.relationship.LinksTo.Configure:
  # do we need an ONAP extension of the standard TOSCA tosca.interfaces.relationship.Configure??
    derived_from: tosca.interfaces.relationship.Configure
      
  onap.interfaces.relationship.BindsTo.Configure:
  # do we need an ONAP extension of the standard TOSCA tosca.interfaces.relationship.Configure??
    derived_from: tosca.interfaces.relationship.Configure
      




...