This example shows how the vCSCF VNF could have been implemented using the new data model.

The original model of VoLTE vCSCF


#### "Interface" type ####
node_types:
  com.nokia.vSCCF:
    derived_from: onap.nodes.Function
    properties:
      
    requirements:
    # connectivity requirements, application-level
      - oamCpd_OM:
      # TODO copy the requirement assignments from their origin CPs inside the topology
      - lbCpd_OM:
      - lbCpd_SIP:
      - lbCpd_Diameter:
      
      # summary of requirements for infrastructure 
      - oam_compute:
      - lb_compute:
      - oam_storage:
      - lb_storage:


##### Implementation topology #####
topology_template:

  node_types:
    com.nokia.vdu.OAM:
      derived_from: onap.nodes.Function
      artifacts:
        sw_image:
          description: software image to launch a container with this function
          type: tosca.artifacts.Deployment.Image.VM.ISO
          file: ../../oam_vdu.iso
      capabilities:
        oamCpd_OM:
          type: onap.capabilities.Bindable
        oamCpd_Internal:
          type: onap.capabilities.Bindable
      requirements:
        - storage:
            capability: onap.capabilities.Storage
        - host:
            capabilities: onap.capabilities.Compute
      
    com.nokia.vdu.LB:
      derived_from: onap.nodes.Function
      artifacts:
        sw_image:
          description: software image to launch a container with this function
          type: tosca.artifacts.Deployment.Image.VM.ISO
          file: ../../lb_vdu.iso
      capabilities:
        lbCpd_OM:
          type: onap.capabilities.Bindable
        lbCpd_SIP:
          type: onap.capabilities.Bindable
        oamCpd_Diameter:
          type: onap.capabilities.Bindable
      requirements:
        - storage:
            capability: onap.capabilities.Storage
        - host:
            capabilities: onap.capabilities.Compute

  node_templates:
    oam:
      type: com.nokia.vdu.OAM
      requirements:
        - storage:
            node_filter:
              capabilities: onap.capabilities.Storage
              properties:
                storage_size:
                  - greater_or_equal: 100 GB
        - host:
            node_filter:
              capabilities: onap.capabilities.Compute
              properties:
                num_cpus:
                  - equal: 4
                memory_size:
                  - greater_or_equal: 100 MB

    oamCpd_OM:
      type: onap.nodes.CP
      requirements:
        - binding:
          node: oam
          capability: oamCpd_OM
      # "linking" stays unsatisfied, but provides filtering info
        - linking:
            node_filter:
              capabilities: onap.nodes.VL
              properties:
                cp_roles: [leaf]
                protocols: [IPv4]
                bitrate: 
                  - greater_or_equal: 1024
     
    oamCpd_Internal:
      type: onap.nodes.CP
      requirements:
        - binding:
            node: oam
            capability: oamCpd_OM
        - linking:
            node: cscf_internal
            capability: linking
                  
    lb:
      type: com.nokia.vdu.LB
      requirements:
        - storage:
            node_filter:
              capabilities: onap.capabilities.Storage
              properties:
                storage_size:
                  - greater_or_equal: 100 GB
        - host:
            node_filter:
              capabilities: onap.capabilities.Compute
              properties:
                num_cpus:
                  - equal: 4
                memory_size:
                  - greater_or_equal: 100 MB

    lbCpd_Internal:
      type: onap.nodes.CP
      requirements:
        - binding:
            node: lb
            capability: lbCpd_Internal
        - linking:
            node: cscf_internal
            capability: linking
            
    lbCpd_OM:
      type: onap.nodes.CP
      requirements:
        - binding:
          node: lb
          capability: lbCpd_OM
      # "linking" stays unsatisfied, but provides filtering info
        - linking:
            node_filter:
              capabilities: onap.nodes.VL
              properties:
                cp_roles: [leaf]
                protocols: [IPv4]
                bitrate: 
                  - greater_or_equal: 1024

    lbCpd_SIP:
      type: onap.nodes.CP
      requirements:
        - binding:
          node: lb
          capability: lbCpd_SIP
      # "linking" stays unsatisfied, but provides filtering info
        - linking:
            node_filter:
              capabilities: onap.nodes.VL
              properties:
                cp_roles: [leaf]
                protocols: [IPv4]
                bitrate: 
                  - greater_or_equal: 1024

    lbCpd_Diameter:
      type: onap.nodes.CP
      requirements:
        - binding:
          node: lb
          capability: lbCpd_Diameter
      # "linking" stays unsatisfied, but provides filtering info
        - linking:
            node_filter:
              capabilities: onap.nodes.VL
              properties:
                cp_roles: [leaf]
                protocols: [IPv4]
                bitrate: 
                  - greater_or_equal: 1024
                  
    cscf_internal:
      type: onap.nodes.VL
      capabilities:
        link:
          type: onap.capabilities.Linkable
          properties:
            cp_roles: [leaf]
            protocols: [IPv4]
            bitrate: 1024
            
  substitution_mapping:
    type: com.nokia.vSCCF
    requirements:
    # connectivity requirements, application-level
      oamCpd_OM: [oam, oamCpd_OM]
      # TODO copy the requirement assignments from their origin CPs inside the topology
      lbCpd_OM: [lb, lbCpd_OM]
      lbCpd_SIP: [lb, lbCpd_SIP]
      lbCpd_Diameter: [lb, lbCpd_Diameter]
      
      # summary of requirements for infrastructure 
      oam_compute: [oam, host]
      lb_compute: [lb, host]
      oam_storage: [oam, storage]
      lb_storage: [lb, storage]


  • No labels

6 Comments

  1. Anatoly,

    Can you please point me to the original Service Template from Nokia for comparing. I can't find it in the link you mentioned above by vCSCF.

    Tks,

    Andrei

    1. Here is the link to the whole page: VOLTE test case input collection for tracking

      The link to the CSAR is in the middle of this page. I failed to create a link anchor at that location, so just search for the string "IS-CSCF v3 from Nokia" and you will get there.

  2. I would avoid the use of "Interface type", since it will likely get confused with TOSCA Interface Types. 

    1. Right, I also feel a bit uncomfortable with this term, and for exactly the same reason. Could not find anything better to suggest, though.

       

      1. Anatoly Katzman I have started to use the word "facade" as the externally-visible aspects of a node as represented by a Node Type.