Versions Compared

Key

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

NSD Requirements:

1,  VFC project requirement

  • VFC project implement ETSI NFVO, which needs to consume the NSD. 
    Image Added
  • VFC needs to expose NFVO northbound SOL005 interfaces to SO or OSS/BSS/3GPP Management System
    JIRA : VFC-635/VFC-648

                    Image Added                    

                  Image Added


2,  NSD vs ServiceD differences:

             Service Descriptor in SDC R3:    Service composites many resources in the SDC, including SDC AID resources(vf, extVL, AllottedResource) and R2+ resources.

             NSD in VFC:   NSD composites VNFD, PNFD, and NSVirtualLink, nested NSD, etc,  ETSI NFV resources.

             NSD requires to do some limitation in NFV resources composition, not all the SDC resources and substitution_mappings to NS TOSCA node


NSD related work pages:

     R3 NetworkServiceModel

     ONAP R2+ Design-Time Service DM Input.

     PNF resource IM proposal

     Network Service Descriptor Model - Based on R2


Panel
borderStylesolid
titleNode Type
Code Block
firstline1
titletosca.nodes.nfv.NS
linenumberstrue
collapsetrue
   tosca.nodes.nfv.NS:
      derived_from: onaptosca.nodes.ServiceComponentRoot
    requirements:
      - virtualLink:properties: 
        capabilityns_id: tosca.capabilities.nfv.VirtualLinkable
        relationship  type: tosca.relationships.nfv.VirtualLinksTo
  string
    - wanLink:
        capabilityrequired: tosca.capabilities.wan.VirtualLinkabletrue
        relationship: tosca.relationships.wan.VirtualLinksTo
Code Block
firstline1
titletosca.nodes.nfv.VNF
linenumberstrue
collapsetrue
tosca.nodes.nfv.VNF:designer:
  derived_from: tosca.nodes.Root
  properties: 
    descriptor_idtype: # instead of vnfd_id
    string
  type: string # GUID
      required: true
    descriptor_version: # instead of vnfd_version
      type: string
      required: true
    providertype: # instead of vnf_providerstring
      type: string
      required: true
    product_name: # instead of vnf_product_name:
      type: string
      requiredtype: true
    software_version: # instead of vnf_software_version
string
          typerequired: stringtrue
      required: true
    product_info_name: # instead of vnf_product_info_name
 invariant_id:
          type: string
      required: false
    product_info_description: # instead of vnf_product_info_descriptionrequired: true
      typecapabilities: string
      required: false
    vnfm_info #monitoring_parameter:
      type: list
   # modelled as entry_schema:
ad hoc capabilities in VNF    type: stringnode template
      requiredrequirements: true
    localization_languages:
    -  type: listvirtual_link:
      entry_schema:
        typecapability: string
      required: false
    default_localization_language:
    tosca.capabilities.nfv.VirtualLinkable
  type: string
      required: false
  requirementsrelationship:
     - virtual_link:
        capability: tosca.capabilitiesrelationships.nfv.VirtualLinkableVirtualLinksTo
          relationship  node: tosca.relationshipsnodes.nfv.VirtualLinksTo
NsVirtualLink        node:# tosca.nodes.nfv.VnfVirtualLinkVL
            occurrences: [ 0, UNBOUNDED ]
Code Block
firstline1
titletosca.nodes.nfv.VNF
linenumberstrue
collapsetrue
refer to https://wiki.onap.org/display/DW/Node+Type #tosca.nodes.nfv.VNF:
Code Block
firstline1
titletosca.nodes.nfv.NsVirtualLinkPNF
linenumberstrue
collapsetrue
  tosca.nodes.nfv.NsVirtualLinkPNF:
    derived_from: tosca.nodes.Root
    descriptionproperties: 
 External    virtual link used in network service.descriptor_id: # instead of pnfd_id
    properties:    type: string 
      id: #virtual_link_desc_id  required: true
      provider:
        type: string
        required: true
      version:
        descriptiontype: Identifier ofstring
 the NsVirtualLinkDesc information element. It uniquely identifies arequired: VLD.true
      provider: #vitual_link_desc_providerdescriptor_invariant_id:
        type: string # GUID
        required: falsetrue
      name:
   description: Defines the organization generating thetype: VLD.string
        version: #virtual_link_desc_versionrequired: true
      function_description:
        type: string
        required: true
      #geographical_location_info:        
      #  descriptiontype: Specifies the version of the VLD.
 TBD
      #  required: true
    requirements:
       connectivity- virtual_typelink:
         type  capability: tosca.datatypescapabilities.nfv.ConnectivityTypeVirtualLinkable
           requiredrelationship: tosca.relationships.nfv.VirtualLinksTo
Code Block
firstline1
titletosca.nodes.nfv.NsVirtualLink
linenumberstrue
collapsetrue
  tosca.nodes.nfv.NsVirtualLink:
     derived_from:
    description: Specifies the protocol exposed by a VL and the flow pattern supported by the VL.
   tosca.nodes.Root
       description: node definition of Virtual Links
     properties:
       test_accessprovider:
         type: liststring
         entry_schemarequired: false
       version:
         type: string
         required: false true
       vl_profile
        description: >  type: tosca.datatypes.nfv.VlProfile # only covers nin/max bitrate requirements
         required: Specifiestrue
 test access facilities expected on the VL  connectivity_type:
          (e.g. none, passive monitoring, or active (intrusive) loopbacks at endpoints).type: tosca.datatypes.nfv.ConnectivityType
         required: true
      description qos:
         type: string
tosca.datatypes.nfv.Qos
         required: false
        description: >service_availability:
        Provides human-readable information on the purpose of the virtual link (e.g. VL for control plane traffic). 
type: tosca.datatypes.nfv.ServiceAvailability
         required: false
      capabilities:
      virtual_linkable  VirtualLinkable:
          type: tosca.capabilities.nfv.VirtualLinkable
Panel
borderStylesolid
titleData Type:
Code Block
firstline1
titletosca.datatypes.nfv.ConnectivityType
linenumberstrue
collapsetrue
tosca.datatypes.nfv.ConnectivityType:
  derived_from: tosca.datatypes.Root
  properties: 
    layer_protocol:
      type: string
      required: true
      constraints:
        - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo_wire ]  
    flow_pattern:
      type: string
      required: false
      constraints:
        - valid_values: [Line, Tree, Mesh]  
Code Block
firstline1
titletosca.datatypes.nfv.ServiceAvailability
linenumberstrue
collapsetrue
tosca.datatypes.nfv.ServiceAvailability:
   derived_from: tosca.datatypes.Root
   description: service availability 
   properties:
     Level:
       type: string
       description: service availability levels
       required: true
       constraints:
          - valid_values: [ Level1, Level2,Level3 ]   


 

Panel
borderStylesolid
titleCapability
Code Block
firstline1
titletosca.capabilities.nfv.VirtualLinkable
linenumberstrue
collapsetrue
tosca.capabilities.nfv.VirtualLinkable:
    derived_from: tosca.capabilities.network.Linkable
Panel
borderStylesolid
titleRelationship
Code Block
firstline1
titletosca.relationships.nfv.VirtualLinksTo
linenumberstrue
collapsetrue
tosca.relationships.nfv.VirtualLinksTo:
    derived_from: tosca.relationships.DependsOn
    valid_target_types: [ tosca.capabilities.nfv.VirtualLinkable ]
Panel
borderStylesolid
titleNS Example
Code Block
firstline1
titletosca.relationships.nfv.VirtualLinksToNS Example
linenumberstrue
collapsetrue
tosca_definitions_version:
tosca_simple_yaml_1_1
metadata:
  ...
imports:
- nodes:
    file: nodes.yml
- datatypes:
    file: data.yml
- capabilities:
    file: capabilities.yml
-relationships:
    file: relationships.yml


topology_template:
  inputs:
    # omitted here for brivity
  substitution_mappings:
    node_type: tosca.nodes.nfv.NS.example
    requirements:
      - virtualLink: [VNF1, virtualLink2]
node_templates:
    NsVL1:
      type: tosca.nodes.nfv.NsVirtualLink
      properties:     ...
    NsVL2:
      type: tosca.nodes.nfv.NsVirtualLink
      properties:     ...
    VNF1:
      type: tosca.nodes.nfv.VNF.VNF1
      properties: ...
      requirements:
        - virtualLink1: NsVL2
    VNF2:
      type: tosca.nodes.nfv.VNF.VNF2
      properties: ...
      requirements:
        - virtualLink2virtualLink1: 
NsVL1    
    VNF3:
      capabilitytype: tosca.capabilitiesnodes.nfv.VirtualLinkableVNF.VNF3
      properties: ...
      requirements:
        - virtualLink1: NsVL1
        - virtualLink2: NsVL2
    VNF2PNF1:
      type: onaptosca.nodes.nfv.VNFPNF.PNF1
      properties: ...
      requirements:
        - virtualLink1: NsVL1

###################VNF1 Template ##################
   .....
  substitution_mappings: 
    requirements: 
      VNF3:virtualLink1: 
      - ext_port_1
      - virtual_link
    node_type: onaptosca.nodes.nfv.VNF.VNF1


###################VNF2 Template ##################
   .....
  substitution_mappings: 
    requirements: 
      virtualLink1: 
      - ext_port_1
       properties- virtual_link
    node_type: tosca.nodes.nfv.VNF.VNF2


###################VNF3 Template ##################
   .....
  substitution_mappings: 
    requirements: 
      virtualLink1: 
      - virtualLink1ext_port_1
      - virtual_link
      virtualLink2: NsVL1
      - ext_port_2
      - virtual_link
    node_type: tosca.nodes.nfv.VNF.VNF3


###################PNF1 Template ##################
   .....
  substitution_mappings: 
    requirements: 
      virtualLink1: NsVL2 
      - ext_port_1
      - virtual_link
    node_type: tosca.nodes.nfv.PNF.PNF1