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

...

Panel
borderColorgreen
borderStylesolid
titleSample VNF
Code Block
title"Local" Node Types
linenumberstrue
collapsetrue
node_types:    
  onap.node.samples.SampleVFC1:
    derived_from: onap.nodes.VFC:
    requirements:
      - host:
    capabilities:
	    # For every port attached, define a separate binding capability under its own name
		# do not use the mechanism of occurrences
      binding_1:
        type: onap.capabilities.Bindable
        occurrences: [1, 1]
      binding_2:
        type: onap.capabilities.Bindable
        occurrences: [1, 1]
        
  onap.node.samples.SampleVFC2:
    derived_from: onap.nodes.VFC:
    requirements:
      - host:
    capabilities:
      binding_1:
        type: onap.capabilities.Bindable
        occurrences: [1, 1]
 
Code Block
titleExample VNF Topology
linenumberstrue
collapsetrue
node_templates:
  vfc_1:
    type: onap.node.samples.SampleVFC1
    requirements:
      - host:
          node: vdu_1
          capability: host
    capabilities:
      binding_1:
      binding_2:
    
  vfc_2:
    type: onap.node.samples.SampleVFC1
    requirements:
      - host:
          node: vdu_2
          capability: host
    capabilities:
      binding_1:
      binding_2:
    
  cp_1:
    type: onap.nodes.CP
    requirements:
      - binding:
          node: vfc_1
          capability: binding_1
      - link: # a requirement for an external VL => this is an external CP
          node_filter:
          
  cp_2:
    type: onap.nodes.CP
    requirements:
      - binding:
          node: vfc_1
          capability: binding_2
      - link: # linked to the internal VL => this is an internal CP
          node: vl_1
          capability: link
          
  cp_3:
    type: onap.nodes.CP
    requirements:
      - binding:
          node: vfc_2
          capability: binding_1
      - link: # linked to the internal VL
          node: vl_1
          capability: link
          
  vl_1:
    type: onap.nodes.VL
    capabilities:
      - link:
    # The capabilities of this VL are not exposed through 
    # the substitution mapping => this is an internal VL
          
  vducontainer_1:
    type: onap.node.VDUContainer
    capabilities:
      host:
    requirements:
      - cpu:
      - memory:
      - storage:
      - io:
      - nic:
      
  vducontainer_2:
    type: onap.node.VDUContainer
    capabilities:
      host:
    requirements:
      - cpu:
      - memory:
      - storage:
      - io:
      - nic:
      
policies:
  cp_address_assignment_1:
    type: onap.policies.AddressAssignment
    properties:
      automatic_assignment: true
      address_type: IPv4
    targets: cp2, cp3
    
  qos_1:
    type: onap.policies.QualityOfService
    properties:
      max_latency: 100 ms
      latency_jitter: 10 ms
      packet_loss_ratio: 0.01
    targets: vl_1
    
subtitution_mapping:
  type: #.... the node type of this VNF
  requirements:
    - ext_link_1:
        mapping: [cp_1, link]
        

...