Versions Compared

Key

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

...

  • see NsInstance from ETSI GS NFV-SOL 005 v2.7.1

NS LCM Manager Design

VFC design 

  • get nsdId, nsName and nsDescription, context (globalCustomerId, serivceType) parameters

  • get a ns package by the given nsdId from ETSI Catalog Manager
  • check if ns instance exists from the NFVO_NSINST database table
    • if it exists, log it exists
  • create an ns instance id (uuid) and store it with other nsd info, status (NOT_INSTANTIATED) to NFVO_NSINST database table
  • create an ns instance record (service-instance-id, service-instance-name, service-type, service-role) in AAI
  • get nsInstance from GetNSInfoService
  • return 201 Created with the NsInstance
  • Send NsIdentifierCreationNotification

...

NsLcmOperationOccurrenceNotification (Start/Processing/Completed)


NS LCM Manager Design

VFC Design

  • Get an ns instance id from the parameter
  • create a job for the ns instance id
  • create an occ id for the ns instance id
  • Update the ns instance id row of the NFVO_NSINST database table for status (= INSTANTIATING)
  • get a ns instance data from the NFVO_NSINST for the ns instance id
  • get and store additional Parameters for NS
  • get an VIM id from the cloud owner and cloud region parameters
  • get an VNF VIM from he location constraints
  • set the job status with 'Start Query NSD'
  • get and parse a nsd for the ns package id
  • modify nsd state
  • get VNF list from the nsd 
  • for each VNF,
    • get vnfd_id, vnfm_type, vimId, s_vimId (with "cloud_owner"_"cloud_regionid")
    • select VNFM by leveraging AAI ESR
    • store VNF pararms in collection, with vnf info including vnfmInstanceId
  • set vl vim id
    • for each VNF
      • if VNF has dependencies, for each dependency
        • add VNF properties and id into vl_vnf array
    • for each VLs
      • get vnfdId and vimId
      • add vimId into VL array
  • update NFVO_NSINST with the nsd model
  • get PNF parameters
  • get VNF parameters (from VNF params above)
  • set up Plan Input with job_id, ns_inst_id, tosca plan, additional NS params, VNF params, PNF params)
  • start workflows with the job_id, ns_inst, plan_input, occ_id)
    • get service template id from ETSI Catalog Manager
    • get process id from ETSI Catalog Manager
    • workflow run with data (process id, params = plan input)


      • createVL
      • createVNF
      • createSFC (Service Function Chain)

...

NsLcmOperationOccurrenceNotification (Start/Processing/Completed)


NS LCM Manager Design

VFC Design

  • Get an ns_inst_d, job_id and request_data from the parameters
  • if there no matching ns_inst_id from the NFVO_NSINT database table, consider there is nothing to terminate, and return
  • set job status as "Starting terminate..."
  • update the ns_inst_id row from the NFVO_NSINST database table with the status = TERMINATING
  • cancel SFC list
    • get sfc inst array
    • for each sfc inst
      • DELETE /api/nslcm/v1/ns/sfcs/{instId}
  • cancel VNF list
    • get vnf inst list array from NFVO_NFINST
      • for each vnf inst
        • delete_vnf (nf_instid)
          • POST /api/nslcm/v1/ns/terminateVnf/{instId}
  • cancel VL list
    • get VL Inst array
    • for each VL inst
      • DELETE /api/nslcm/v1/ns/vls/{instId}
  • cancel PNF list
    • get pnf inst array
    • for each pnf inst 
      • DELETE /api/nslcm/v1/pnfs/{instId}
  • modify the ns_inst_id row state from the NFVO_NSINST database table
  • modify NFVO_NSINST status = NOT_INSTANTIATED
  • set job status = NS terminate ends
  • Update NsLcmOpOCC to COMPLETED
  • Send nsLcmOperationOccurrenceNotification

...

  • Send NsIdentifierDeletionNotification


NS LCM Manager Design

VFC_Design

  • get ns_inst_id
  • delete ns instance in AAI
    • get ns_instances from NFVO_NSINST database table
    • invoke delete_ns_aai with global_customer_id, service_type, ns_inst_id, resource_version
      • formulate the resource url with parameters
      • call_aaI (resource, "DELETE")
  • delete ns_inst_id row from the NFVO_NSINST database table
  • delete ns_inst_id row from the NFVO_INPutParamMapping database table
  • delete ns_inst_id row from the DefPkgMapping database table
  • delete ns_inst_id row from the ServiceBaseInfo database table
  • return 204 No Content
  • Send NsIdentifierDeletionNotification

...

attribute namedata typecardinalitydescription

nsdIds

Identifier0..N

If present, match NS instances that were

created based on an NSD identified by one of

the nsdId values listed in this attribute.

See note 1.

vnfdIds

Identifier0..N

If present, match NS instances that contain

VNF instances that were created based on a

VNFD identified by one of the vnfdId values

listed in this attribute.

See note 1.

pnfdIdsIdentifier0..N

If present, match NS instances that contain

PNFs that are represented by a PNFD

identified by one of the pnfdId values listed in

this attribute.

See note 1.

nsInstanceIdIdentifier0..N

If present, match NS instances with an

instance identifier listed in this attribute.

See note 2.

nsInstanceNamesString0..N

If present, match NS instances with an NS

Instance Name listed in this attribute.

See note 2.

NOTE 1: The attributes "nsdIds", "vnfdIds" and "pnfdIds" are alternatives to reference to NS instances that are

created based on certain NSDs, or contain VNF instances that are based on certain VNFDs, or contain

PNFs that are based on certain PNFDs in a filter. They should not be used together in the same filter

instance, but one alternative should be chosen.

NOTE 2: The attributes "nsInstanceIds" and "nsInstanceNames" are alternatives to reference to particular NS

Instances in a filter. They should not be used both in the same filter instance, but one alternative should be

chosen.


NS LCM Manager Design

VFC Design

  • create subscription id
  • check callback Uri
  • check filter types
  • save subscription request to database
  • return response with subscription


Proposal

The following diagram depicts the Subscription NS.

Image AddedTBD