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
Node Type:VNF
Code Block
firstline1
titletosca.nodes.nfv.NS
linenumberstrue
collapsetrue
  tosca.nodes.nfv.NS:
      derived_from: tosca.nodes.Root
      properties: 
        ns_id: 
#nsd_identifier:

          type: string
          
description
required:
Identifier of this NSD information element. It Globally uniquely identifies an instance of the NSD.
 true
        designer:
          type: string
          required: true
        
designer
version:
          type: string
        
description: Designer of the NSD.
  required: true
        name:
        
required
  type: 
true
string
      
version:
    required: true
        
type
invariant_id:
 
string
         
description
type: 
Version
string
 
of
 
this NSD
        required: true
      
name
capabilities:
#nsd_name:

        
type
#monitoring_parameter:
 
string
        
description:
 
Provides
# 
the
modelled 
human
as 
readable
ad 
name
hoc 
of
capabilities 
the
in 
NSD.
VNF node template
      
required
requirements:
  
true
      
invariant_id: #nsd_invariant_id
- virtual_link:
        
type
    capability:
 
string
          
description:
 
Identifies
 
an
 
NSD in a version independent manner. This attribute is invariant across versions of NSD.
 tosca.capabilities.nfv.VirtualLinkable
            relationship:
        
required:
   
true
    
requirements:
tosca.relationships.nfv.VirtualLinksTo
       
-
  
virtualLink:
   node: tosca.nodes.nfv.NsVirtualLink    
capability:
# tosca.
capabilities
nodes.nfv.
VirtualLinkable
VL
        
relationship: tosca.relationships.nfv.VirtualLinksTo
    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.
PNF
linenumberstrue
collapsetrue
tosca.nodes.nfv.
VNF
PNF:
    derived_from: tosca.nodes.Root
    properties: 
      descriptor_id: 
#vnfd
# instead of pnfd_id
:

        type: string 
        
description
required:
Identifier of this VNFD information element. This attribute shall be globally unique.
 true
      provider:
        type: string
        required: true
      version:
#vnfd_version:

        type: string
        required: true
      
description: Identifies the version of the VNFD.
descriptor_invariant_id:
        type: string 
provider: #vnf_provider:
# GUID
        
type
required: 
string
true
      name:
  
description:
 
Provider
 
of
 
the
 
VNF
 
and
 
of the VNFD.
type: string
        required: true
      
vnf
function_
product_name
description:
        type: string
        
description: Name to identify the VNF Product. Invariant for the VNF Product lifetime.
required: true
      #geographical_location_info:        
      #  type: TBD
      #  required: true
    requirements:
  
vnf_software_version
     - virtual_link:
        
type
   capability: 
string
tosca.capabilities.nfv.VirtualLinkable
         
required: true
  relationship: tosca.relationships.nfv.VirtualLinksTo
Code Block
firstline1
titletosca.nodes.nfv.NsVirtualLink
linenumberstrue
collapsetrue
  tosca.nodes.nfv.NsVirtualLink:
     derived_from:
    
description:
  
>
 tosca.nodes.Root
       description: 
Software
node 
version
definition of
the VNF.
 Virtual Links
     properties:
       provider:
   
This
 
is
 
changed
 
when
 
there
 
is
 
any
type: 
change
string
 
to
 
the
 
software
 
that
 
is
 
included
 
in
 
the
 
VNF
required: 
Package.
false
       
vnfm_info
version:
         type: string
         required: true
       vl_profile
 
description:
 
>
 
      type: tosca.datatypes.nfv.VlProfile # only 
Identifies VNFM(s) compatible with the VNF described in this version of the VNFD.
covers nin/max bitrate requirements
         required: true
       connectivity_type:
    
valueRange: use the name of micro-service of the vnfm drive.
     type: tosca.datatypes.nfv.ConnectivityType
         required: true
       qos:
       
For
 
vendor
 
specific VNFM, the value composes of "vendorname" and "vnfmdriver", e.g. "mycompanyvnfmdriver";
type: tosca.datatypes.nfv.Qos
         required: false
       service_availability:
   
for
  
generic
 
VNFM,
 
the
 
value
 
is "gvnfmdriver".
type: tosca.datatypes.nfv.ServiceAvailability
         
requirements
required: false
      
- virtualLink
capabilities:
        
capability
VirtualLinkable:
tosca.capabilities.nfv.VirtualLinkable

          
relationship
type: tosca.
relationships
capabilities.nfv.
VirtualLinksTo
VirtualLinkable
nodesNsVirtualLinkDesc
Panel
borderStylesolid
titleData Type:
Code Block
firstline1
titletosca.
datatypes.nfv.
ConnectivityType
linenumberstrue
collapsetrue
tosca.
nodes
datatypes.nfv.
NsVirtualLinkDesc
ConnectivityType:
  derived_from: tosca.
nodes
datatypes.Root
  properties: 
    
description
layer_protocol:
 
External
 
virtual
 
link
 
used
 
in
 
network
type: 
service.
string
    
properties
  required: true
      
id: #virtual_link_desc_id:
constraints:
        - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo_wire ]  
    flow_pattern:
      
type: string
      
required: 
true
false
      constraints:
   
description:
 
Identifier
 
of
 
the
 
NsVirtualLinkDesc
 
information element. It uniquely identifies a VLD. provider: #vitual_link_desc_provider
- 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: 
false
true
       constraints:
        
description
  - 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
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
node_templates:
    NsVL1:
  
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
nodes.nfv.
ConnectivityType
NsVirtualLink
      properties:  
required: true
   ...
    NsVL2:
    
description
  type: 
Specifies the protocol exposed by a VL and the flow pattern supported by the VL.
tosca.nodes.nfv.NsVirtualLink
      properties:     ...
    VNF1:
      
test_access:
type: tosca.nodes.nfv.VNF.VNF1
      properties: 
type: list
...
      requirements:
        
entry_schema:
- virtualLink1: NsVL2
    VNF2:
      type: 
string
tosca.nodes.nfv.VNF.VNF2
      
required
properties: 
false
...
      requirements:
  
description:
 
>
 
    - virtualLink1: NsVL1    
Specifies

 
test
 
access
 
facilities
 
expected
VNF3:
 
on
 
the
 
VL
 
  type: tosca.nodes.nfv.VNF.VNF3
      properties: 
(e
..
g
.
 
none,
 
passive
 
monitoring,
 
or
 
active (intrusive) loopbacks at endpoints).
 requirements:
        - 
description
virtualLink1: NsVL1
        
type
- virtualLink2: 
string
NsVL2
    PNF1:
      
required: false
type:tosca.nodes.nfv.PNF.PNF1
      properties: ...
  
description:
 
>
   requirements:
     
Provides
 
human-readable
 
information
 
on
- 
the purpose of the virtual link (e.g. VL for control plane traffic). capabilities:
virtualLink1: NsVL1

###################VNF1 Template ##################
   .....
  substitution_mappings: 
    requirements: 
      virtualLink1: 
      
virtual_linkable:
- ext_port_1
      - virtual_link
    node_type: tosca.
capabilities
nodes.nfv.
VirtualLinkable

Data Type:

Code Block
firstline1
titletosca.datatypes.nfv.ConnectivityType
linenumberstrue
collapsetrue
tosca.datatypes.nfv.ConnectivityType: derived_from: tosca.datatypes.Root properties
VNF.VNF1


###################VNF2 Template ##################
   .....
  substitution_mappings: 
    requirements: 
    
layer_protocol:
  virtualLink1: 
      
type: string
- ext_port_1
      
required: true
- virtual_link
    node_type: 
constraints:
tosca.nodes.nfv.VNF.VNF2


###################VNF3 Template ##################
   .....
  substitution_mappings: 
   
-
 
valid_values
requirements: 
[ethernet, mpls, odu2, ipv4, ipv6, pseudo_wire ]

      virtualLink1: 
      - 
flow_pattern:
ext_port_1
      
type: string
- virtual_link
      
required
virtualLink2: 
false

      
constraints:
- ext_port_2
      - 
valid_values: [Line, Tree, Mesh]

Capability:

Code Block
firstline1
titletosca.capabilities.nfv.VirtualLinkable
linenumberstrue
collapsetrue
tosca.capabilities.nfv.VirtualLinkable:
    derived_from: tosca.capabilities.network.Linkable

Relationship:

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 ]
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