Versions Compared

Key

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

...

Code Block
titletosca.nodes.nfv.NF
linenumberstrue
collapsetrue
# There is no need to derive VNF or PNF node types at the *data model* level
# Use composition to cover the differences
  tosca.nodes.nfv.NF:
    derived_from: tosca.nodes.Root
    properties:
      descriptor_id: 
        type: string # GUID
        required: true
      descriptor_version: 
        type: string
        required: true
      provider: 
        type: string
        required: true
      product_name: 
        type: string
        required: true
      software_version: 
        type: string
        required: true
      product_info_name: 
        type: string
        required: false
      product_info_description: 
        type: string
        required: false
      localization_languages:
        type: list
        entry_schema:
          type: string
        required: false
      default_localization_language:
        type: string
        required: false
      # configurable_properties:  
        # type: tosca.datatypes.nfv.VnfConfigurableProperties <== remove Vnf prefix?
        # required: true
      # modifiable_attributes:  
        # type: tosca.datatypes.nfv.VnfInfoModifiableAttributes <== remove Vnf prefix?
        # required: true    
      # lcm_operations_configuration: # what use is made of this and by whom?
        # type: tosca.datatypes.nfv.NfLcmOperationsConfiguration
        # description: Describes the configuration parameters for the NF LCM operations
        # required: true        
     # monitoring_parameters:
       # type: list
       # entry_schema:
       #   type: tosca.datatypes.nfv.NfMonitoringParameter
       # description: Describes monitoring parameters applicable to the NF.
       # required: false
      flavour_id:
        type: string
        required: true
      # flavour_description:  # should be in the NF's DF definition and not need to be provided here (join it with the id)
        # type: string
        # required: false   
      # vnfm_info:    # I wouldn't recommend putting this in any static model. Maybe a reference to a dynamic property?
        # type: list
        # entry_schema:
          # type: string
        # required: true  
    #capabilities:
      # monitoring_parameter:
        # modelled as ad hoc capabilities in the VNF node template
    requirements:
      - virtual_link:
          capability: tosca.capabilities.nfv.VirtualLinkable
          relationship: tosca.relationships.nfv.VirtualLinksTo
          node: tosca.nodes.nfv.VirtualLink   # Change to remove vnf
          occurrences: [ 0, UNBOUNDED ]
        
# Work with OASIS on normative representations of compute, storage, architecture, etc.  
# I'll just lump them into ExecutionEnvironmentAspects for this example  
  
  tosca.capabilities.nfv.Moveable:
    derived_from: tosca.capabilities.Root  
  
  # Only PNFs could have this capability     
  tosca.capabilities.nfv.PhysicallyMoveable:
    derived_from: tosca.capabilities.nfv.Moveable
    
  # Only VNFs could have this capability     
  tosca.capabilities.nfv.VirtuallyMoveable:
    derived_from: tosca.capabilities.nfv.Moveable
 
  # Only PNFs could have this capability
  tosca.capabilities.nfv.PurposeBuiltHostingPlatform:
    derived_from: tosca.capabilities.Root
    properties:
      provider:
        type: string
        required: true
      serial_number:
        type: string
        required: false
    attributes:
      serial_number:
        type: string
        required: true
    valid_source_types: []     

...