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:

  properties: 
   - wanLink:    ns_id: 
   # to support VoLTE case based on thetype: R1string
 WAN link node
        capabilityrequired: tosca.capabilities.network.Linkabletrue
        relationship: tosca.relationships.network.LinksTo
 designer:
       node: org.openecomp.resource.vl.overlaytunnel
        occurrences: [ 0, UNBOUNDED ]  type: string
      # same with the anatoly comments on the VNF.

Code Block
firstline1
titletosca.nodes.nfv.VNF
linenumberstrue
collapsetrue
tosca.nodes.nfv.VNF:
  derived_from: tosca.nodes.Root
  properties: 
    descriptor_id: # instead of vnfd_id
required: true
        version:
          type: string
   # GUID
      required: true
    descriptor_version: # instead of vnfd_versionname:
      type: string
      requiredtype: truestring
    provider: # instead of vnf_provider
      typerequired: stringtrue
      required: true
    productinvariant_nameid:
 # instead of vnf_product_name
      type: string
          required: true
    software_version: # insteadcapabilities:
 of vnf_software_version
      type#monitoring_parameter: string
      required: true
    product_info_name: # insteadmodelled of vnf_product_info_name
      type: stringas ad hoc capabilities in VNF node template
      requiredrequirements:
 false
    product_info_description: # instead of- vnf_product_info_descriptionvirtual_link:
      type: string
      requiredcapability: false
    vnfm_info:
      type: list
      entry_schema:tosca.capabilities.nfv.VirtualLinkable
        type: string
      required: truerelationship:
  requirements:
    - virtual_link:
        capability: tosca.capabilitiesrelationships.nfv.VirtualLinkableVirtualLinksTo
        relationship    node: tosca.relationshipsnodes.nfv.VirtualLinksTo
NsVirtualLink    #    node: tosca.nodes.nfv.VnfVirtualLinkVL
        occurrences: [ 0, UNBOUNDED ]    # anatony: Opt1:occurrences: [ 0,0]; opt2 remove the virtual_link in the vnf base node. 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.
    properties:
      id: #virtual_link_desc_id:descriptor_id: # instead of pnfd_id
        type: string 
        required: true
        description: Identifier of the NsVirtualLinkDesc information element. It uniquely identifies a VLD.
      provider: #vitual_link_desc_provider:
        type: string
        required: falsetrue
        description: Defines the organization generating the VLD.
      version: #virtual_link_desc_version:
        type: string
        required: true
        description: Specifies the version of the VLD.
      connectivity_type:
        type: tosca.datatypes.nfv.ConnectivityTypedescriptor_invariant_id:
        type: string # GUID
        required: true
        descriptionname:
 Specifies the protocol exposed by a VL and the flow pattern supported by the VL.type: string
      test_access:
        typerequired: listtrue
        entryfunction_schemadescription:
          type: string
        required: falsetrue
        description: > 
     #geographical_location_info:      Specifies test access facilities expected on the VL 
          (e.g. none, passive monitoring, or active (intrusive) loopbacks at endpoints).
      description:
        #  type: stringTBD
      #  required: falsetrue
        description: >requirements:
        Provides human-readable informationvirtual_link:
 on the purpose of the virtual link (e.g. VL for control plane traffic). 
    capabilities:capability: tosca.capabilities.nfv.VirtualLinkable
      virtual_linkable:
        typerelationship: tosca.capabilitiesrelationships.nfv.VirtualLinkableVirtualLinksTo
Code Block
firstline1
titletosca.nodes.nfv.OpenstackNetworkNsVirtualLink
linenumberstrue
collapsetrue
  tosca.nodes.nfv.OpenstackNetworkNsVirtualLink:
     derived_from:
       tosca.nodes.nfv.NsVirtualLink
Root
       description: Implementnode thedefinition openstackof network L2/L3 model
Virtual Links
     properties:
      cidr provider:
         type: string
         required: false
       start_ipversion:
         type: string
         required:false true
      end vl_ip:profile
         type: string
 tosca.datatypes.nfv.VlProfile # only covers nin/max bitrate requirements
         required:false true
      gateway connectivity_iptype:
         type: stringtosca.datatypes.nfv.ConnectivityType
         required: falsetrue
      dhcpEnabled qos: 
         type: Booleantosca.datatypes.nfv.Qos
         required: false
       networkservice_nameavailability:
         type: stringtosca.datatypes.nfv.ServiceAvailability
         required: false
      network_idcapabilities:
        typeVirtualLinkable:
 string
         required: false
      segmentation_id:
        type: string
        required: false 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:
      network_type: string
        typerequired: stringtrue
        constraints:
           - valid_values: [VLANethernet, VXLAN]
        required: false mpls, odu2, ipv4, ipv6, pseudo_wire ]  
      physicalflow_networkpattern:
        type: string
        required: false
      vlanTransparentconstraints:  
        - typevalid_values: Boolean
         required: false
Panel
borderStylesolid
titleData Type:
[Line, Tree, Mesh]  
Code Block
firstline1
titletosca.datatypes.nfv.ConnectivityTypeServiceAvailability
linenumberstrue
collapsetrue
tosca.datatypes.nfv.ConnectivityTypeServiceAvailability:
   derived_from: tosca.datatypes.Root
  properties: 
    layer_protocol:
      type: string description: service availability 
      required: trueproperties:
      constraintsLevel:
        - valid_valuestype: [ethernet, mpls, odu2, ipv4, ipv6, pseudo_wire ]  
    flow_pattern:string
       description: service availability levels
      type: string
      required: falsetrue
       constraints:
          - valid_values: [Line Level1, TreeLevel2,Level3 Mesh]   


 

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
titleNS 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: onaptosca.nodes.nfv.VNF.VNF2
      properties: ...
      requirements:
        - virtualLink1: NsVL1    
    VNF3:
      type: onaptosca.nodes.nfv.VNF.VNF3
      properties: ...
      requirements:
        - virtualLink1: NsVL1
        - virtualLink2: NsVL2
    PNF1:
      type:tosca.nodes.nfv.PNF.PNF1
      properties: ...
      requirements:
        - virtualLink1: NsVL1

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


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


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


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