Versions Compared

Key

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



Table of Contents
outlinetrue

Introduction

The PNF Registration and Re-registration Notification is generated whenever the a CPE is plugged into the network either for the first time (registration) or whenever the CPE is plugged into a different interface of an access node in the network (re-registration).

Upon reception of the notification within ONAP by a DCAE collector, the notification is mapped into a VES event and placed on the DMaaP bus for processing by the DCAE/PRH uS. 

BBS Flows Cross Reference

The PNF Registration notification is used within the following use case scenarios:

PNF Registration Flow

The PNF Registration Flow is documented here for the BBS use case.

PNF Re-registration Flow

Gliffy
nameBBS PNF Registration and Re-registration Notification
pagePin3540

Figure 1. BBS PNF Registration and Re-registration Notification Flow Diagram

Here  are the flow by steps (WIP):

10) Access SDN M&C reports the PNF registration event to DCAE/PRH

    1. This notification may be sent to the Restconf VES collector for translation and mapping into the PNF registration VES event as described here.

20) DCAE/PRH then processes the PNF registration event logic where PRH determines if the event is a registration or re-registration event

    1. The determination if this event is a registration or registration is documented here
    2.  If the ONT/PNF is re-registered,  a PNFUpdate PNF_UPDATE event with the additional fields from the VES registration VES event is produced by PRH onto DMAAP.

30) For the PNF re-registration, the BBS uS:

      30.1) consumes PNFUpdateEvent PNF_UPDATE event from DMAAP,

      30.2) looks up the service-instance-id by the pnf-name, checks PON UNI attachment point in VES message 'additionalFields' against PON UNI in service instance's Access Connectivity RFSthe attachment point in the PNF.

      30.3) looks up a list of resources to be updated

      30.4) triggers the Nomadic ONT policy

40) Updates the orchestration status of the CFS service instance in A&AI where an event is then emitted to indicates the resources of the service still need updated

50) SDNC API conducts the service resource re-provisioning upon the ONT location change. The PNF attachment point is updated upon successful provisioning.

60) Updates the orchestration status of the CFS service instance in A&AI where an event is then emitted to indicate the resources of the service have been updated

70) The PNF registration procedure continues from step 9 to completionNote: In this release steps 40-60 implement the Steps 9 to end of the PNF re-registration event.

DCAE

PNF Registration Event

The BBS Use uses the ONAP pnfRegisration event with additional fields to identify the Access Node UNI to which the CPE is attached.

Code Block
languagetext
firstline1
titlepnfRegistration Event
linenumberstrue
collapsetrue
This pnfRegistration Event definition can be found at link:
https://wiki.onap.org/display/DW/5G+-+PNF+Plug+and+Play#id-5G-PNFPlugandPlay-STAGE3-PNFREGISTRATIONVESEVENT

The field definitions use for the BBS Use case for ONT Registration:
	eventName: pnfRegistration_<vendorName>_cpe
	eventId: unique per CPE proxied – incremented as described
	sourceName: <PNF-name/PNF correlation ID>: Format string: <Manufacturer
	OUI>-<SerialNumber> or <Manufacturer OUI>-<Model>-<SerialNumber>
	reportingEntityName:<thirdparty-sdnc-id> from esr request
	additionalFields:
		attachmentPointattachment-point: Format: "<oltName>/<oltSlot>/<oltPort>"  <x> denotes element
        accessIdremote-id: Format: string - This represents the Remote ID within the DHCP Option 82 (Optional)
        c-vlan: Format: int - This represents the Customer VLAN associated with the attachment point (Optional)
        s-vlan: Format: int - The represents the Service VLAN of network interface connected to the attachment point (Optional)





















PRH Extension

PNF Re-registration Detection

Refer to PNF Re-registration detection logic handled in 5G use case by extension of PRH micro-service.

PNF for ONT in A&AI

Refer to ONT/PNF definition in ONT modeling

PNF unauthenticated.PNF

pnfUpdate

_UPDATE Event

This event is the output of PRH active service detection and mS when it detects a PNF re-registration event. The event is consumed by the BBS MSmS.


Code Block
languagetext
firstline1
titlePNF Update Event
linenumberstrue
collapsetrue

Nomadic ONT Event/DCAE_CL_OUTPUT Event 

This event triggers Policy engine to call SO API to modify the associated HSIA service.  

DCAE_CL_OUTPUT Event

Code Block
languagetext
firstline1
titleDCAE Control Loop Event
linenumberstrue
collapsetrue
{ 
   "closedLoopEventClientnf-role":"role",
"DCAE.BBS_mSInstance "equip-type":"Equipment-Type-1",
  "equip-vendor":"Vendor",
 "policyVersionequip-model": "1.0.0.5E-model-1",
  
 "policyNameserial-number": "Nomadic_ONTSN1234",
    "policyScope"sw-version": "service=HSIAService,type=SampleType,closedLoopControlName=CL-NomadicONT-d925ed73-8231-4d02-9545-db4e101f88f8",
    "target_type": "VM",
    "AAI""SW-version-1",
 "correlationId":"PNF-correlation",
   "additionalFields": {
            "service-information.service-instance-id" "attachment-point": "serviceolt1-instance1-id-example1",
        "pnf.ontSN"      "cvlan": "ontSN-example"     //...what ever this is
    },
    "closedLoopAlarmStart": 1484677482204798,
    "closedLoopEventStatus": "ONSET",
    "closedLoopControlName": "ControlLoop-BBS-2179b738-fd36-4843-a71a-a8c24c70c88b1005",
     "svlan": "100",
     "remote-id": "some-remote-id"
  }
 }

Nomadic ONT Event/DCAE_CL_OUTPUT Event 

This event triggers Policy engine to call SO API to modify the associated HSIA service.  

DCAE_CL_OUTPUT Event

Code Block
languagetext
firstline1
titleDCAE Control Loop Event
linenumberstrue
collapsetrue
{
    "closedLoopEventClient": "DCAE.BBS_mSInstance",
    "versionpolicyVersion": "1.0.20.5",
    "targetpolicyName": "vserver.vserver-nameNomadic_ONT",
    "requestIDpolicyScope": "97964e10-686e-4790-8c45-bdfa61df770fservice=HSIAService,type=SampleType,closedLoopControlName=CL-NomadicONT-d925ed73-8231-4d02-9545-db4e101f88f8",
    "fromtarget_type": "DCAE"
}
A&AI Enrichment

The moving ONT associated (through pnfName) service ID is looked up in A&AI and enriched in the A&AI portion of the above DCAE_CL_OUTPUT Event which trigger the operational policy in the operational policy defined below.  

Policy

There are two options to author and execute the Nomadic ONT policy - Apex PDP(Pdp-A) or Drools PDP(Pdp-D).

Apex Engine Triggering

Apex PDP engine is configured to consumes the Nomadic ONT event/DCAE-CL_OUTPUT event from DMAAP and call the SDNC Rest API to take resource re-provisioning actions in the original design in Dublin.  Later on, a workaround approach is taken for the BBS MS to consume the pnfUpdate event produced by PRH and eventually calls SNDC API to proceed the  service associated resource re-provisioning  after certain A&AI query and update. Therefore, the policy engine  configuration and policy definition becomes very simple for the time being.  The only reason for now to keep a no action policy is for the completeness of the control loop so that to the BBS workflow it is actually an open loop so that a CL can be defined and managed by CLAMP through which  DCAE micro-services, such as, Restconf Collector, VES Mapper, PRH as well as the BBS MS can be orchestrated centralized.

PDP-A Configuration (JSON)

Simplified Apex Configuration:

Code Block
languagetext
firstline1
titleApexConfig.json
collapsetrue
{
      "engineServiceParameters": {
          "name": "MyApexEngine",
          "version": "0.0.1",
          "id": 45,
          "instanceCount": 4,
          "deploymentPort": 12561,
          "policyModelFileName": "policy/ONAPvCPEPolicyModel.json",
          "engineParameters": {
               "executorParameters": {
                  "JAVASCRIPT": {
                     "parameterClassName": "org.onap.policy.apex.plugins.executor.javascript.JavascriptExecutorParameters"
      VM",
    "AAI": {
        "service-information.hsia-cfs-service-instance-id" : "service-instance-id-example",
		"attachmentPoint" : "olt1-1-1",
		"remoteId" : "some-remote-id",
        "cvlan" : "example cvlan-id",
        "svlan" : "example svlan-id"
    },
    "closedLoopAlarmStart": 1484677482204798,
    "closedLoopEventStatus": "ONSET",
    "closedLoopControlName": "ControlLoop-NomadicONT-fd36-4843-a71a-a8c24c70c88b",
    "version": "1.0.2",
    "target": "vserver.vserver-name",
    "requestID": "97964e10-686e-4790-8c45-bdfa61df770f",
    "from": "DCAE"
}


A&AI Enrichment

The moving ONT associated (through pnfName) service ID is looked up in A&AI and enriched in the A&AI portion of the above DCAE_CL_OUTPUT Event which trigger the operational policy in the operational policy defined below.  

Policy

There are two options to author and execute the Nomadic ONT policy - Apex PDP(Pdp-A) or Drools PDP(Pdp-D).

Apex Engine Triggering

Apex PDP engine is configured to consumes the Nomadic ONT event/DCAE-CL_OUTPUT event from DMAAP and call the SDNC Rest API to take resource re-provisioning actions in the original design in Dublin.  Later on, a workaround approach is taken for the BBS MS to consume the pnfUpdate event produced by PRH and eventually calls SNDC API to proceed the  service associated resource re-provisioning  after certain A&AI query and update. Therefore, the policy engine  configuration and policy definition becomes very simple for the time being.  The only reason for now to keep a no action policy is for the completeness of the control loop so that to the BBS workflow it is actually an open loop so that a CL can be defined and managed by CLAMP through which  DCAE micro-services, such as, Restconf Collector, VES Mapper, PRH as well as the BBS MS can be orchestrated centralized.

PDP-A Configuration (JSON)

Simplified Apex Configuration:

Code Block
languagetext
firstline1
titleApexConfig.json
linenumberstrue
collapsetrue
{       
	"engineServiceParameters": {           
		"name": "MyApexEngine",           
		"version": "0.0.1",           
		"id": 45,           
		"instanceCount": 4,           
		"deploymentPort": 12561,           
		"policyModelFileName": "policy/ONAPvCPEPolicyModel.json",           
		"engineParameters": {                
			"executorParameters": {                   
				"JAVASCRIPT": {                      
					"parameterClassName": "org.onap.policy.apex.plugins.executor.javascript.JavascriptExecutorParameters"                   
					}               
				},               
			"contextParameters": {                   
				"parameterClassName": "org.onap.policy.apex.context.parameters.ContextParameters",                   
				"schemaParameters": {                       
					"Avro": {                           
						"parameterClassName": "org.onap.policy.apex.plugins.context.schema.avro.AvroSchemaHelperParameters"                       
						}                   
					}               
				}           
			}       
		},       
	"eventInputParameters": {            
		"BBSInitConsumer": {                
			"carrierTechnologyParameters": {                    
				"carrierTechnology": "FILE",                   
				"parameters": {                       
					"fileName": "config/BBSInitiationEvent.json"  // ... example event                   
					}                
				},               
			"eventProtocolParameters": {                   
				"eventProtocol": "JSON",                   
				"parameters": {                       
					"nameAlias": "closedLoopControlName",                       
					"versionAlias": "version",                       
					"sourceAlias": "from"                   
					}               
				}           
		},           
		"DCAEConsumer": {               
			"carrierTechnologyParameters": {                   
				"carrierTechnology": "RESTCLIENT",            }       
				"parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restclient.RestClientCarrierTechnologyParameters",      },             
 "contextParameters				"parameters": {                        
					"url": "http://<MSB_IP>:3904/dmaap_port>/unauthenticated.DCAE_CL_OUTPUT/APEX/1?timeout=60000"
         "parameterClassName": "org.onap.policy.apex.context.parameters.ContextParameters",           }        "schemaParameters": {      
				},               
			"AvroeventProtocolParameters": {                   
       "parameterClassName				"eventProtocol": "org.onap.policy.apex.plugins.context.schema.avro.AvroSchemaHelperParameters"JSON",                   
				"parameters": {  }                   }  
            }					"nameAlias": "closedLoopControlName",           }       },     
 "eventInputParameters					"versionAlias": {
 "version",          "BBSInitConsumer": {            
   "carrierTechnologyParameters					"sourceAlias": {"from"                   
"carrierTechnology": "FILE",					}               
				}    "parameters": {      
			}       
		},       
		"fileName": "config/BBSInitiationEvent.json"  // ... example event
eventOutputParameters": {           
			"logProducer": {     }          
				"carrierTechnologyParameters": {    },              
					"eventProtocolParameterscarrierTechnology": {"FILE",                    
					"eventProtocolparameters": "JSON", {                        
"parameters": {						"fileName": "/tmp/BBSEventsOut.json"                    
						}        "nameAlias": "closedLoopControlName",      
					},               
					"versionAliaseventProtocolParameters": "version",{                   
   "sourceAlias						"eventProtocol": "fromJSON"               
   						}           
   }
					},          }, 
         "DCAEConsumer			"SDNCProducer": {               
				"carrierTechnologyParameters": {                   
					"carrierTechnology": "RESTCLIENT",                   
					"parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restclient.RestClientCarrierTechnologyParameters",                   
						"parameters": {                       
							"url": "http://<MSB_IP>:3904/dmaap_port>/unauthenticated.DCAE_CL_OUTPUT/APEX/1?timeout=60000"<sdnc_port>/<path-to-HSIA_Service-Resource-Update>"  //...  SDNC REST Call API                   
							}               
						},               
				"eventProtocolParameters": {                   
					"eventProtocol": "JSON",               
   "parameters": {					}           
				},           
"nameAlias": "closedLoopControlName",
     			"PolicyLogProducer": {               
 "versionAlias				"carrierTechnologyParameters": "version",{                   
   "sourceAlias					"carrierTechnology": "fromRESTCLIENT",                   
}					"parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restclient.RestClientCarrierTechnologyParameters",               }    
					"parameters": {     }       },       "eventOutputParameters": {   
       "logProducer": {						"url": "http://<MSB_IP>:<dmaap_port>/events/POLICY_CL_MGT"                "carrierTechnologyParameters": {  
						}               "carrierTechnology": "FILE"
					},               
    "parameters				"eventProtocolParameters": {                   
    "fileName					"eventProtocol": "/tmp/BBSEventsOut.json"JSON"               
					},        }      					
				"eventNameFilter": "ControlLoopLogEvent"         }  
				}       
 			}   
    }
		}

}


Apex Policy for Nomadic ONT is created as following. It can be on-board as part of the service Tosca module at design time, distributed to an Apex PDP engine by the policy distribution engine through SDC.  

NomadicONT Policy Model (WIP)

This is the Apex Policy state machine for Nomadic ONT.  An open loop operational policy is going to be defined here to support the completeness of control loop in BBS use case in Dublin.

Code Block
languagetext
firstline1
titleNomadicONTPolicyModel.apex
linenumberstrue
collapsetrue
 #-------------------------------------------------------------------------------
 # ============LICENSE_START=======================================================
 #  Copyright (C) 2016-2019 Huawei. All rights reserved.
 # ================================================================================
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at
 # 
 #      http://www.apache.org/licenses/LICENSE-2.0
 # 
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an "AS IS" BASIS,
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
 # 
 # SPDX-License-Identifier: Apache-2.0
 # ============LICENSE_END=========================================================
 #-------------------------------------------------------------------------------
 
 model create name=NomadicONTPolicyModel
 
 schema create name=SimpleStringType  flavour=Java schema=java.lang.String
 schema create name=SimpleLongType    flavour=Java schema=java.lang.Long
 schema create name=SimpleBooleanType flavour=Java schema=java.lang.Boolean
 schema create name=UUIDType          flavour=Java schema=java.util.UUID
  
 schema create name=BBSAAIInfoType flavour=Avro schema=LS
 #MACROFILE:"src/main/resources/schemas/BBSAAIInfoType.avsc"
 LE
 
 
 schema create name=SDNCInputBodyType flavour=Avro schema=LS
create name=UUIDType   #MACROFILE:"src/main/resources/schemas/SDNCInputBodyType.avsc"
 LE
 
 schema create name=SDNCOutputBodyType  flavour=JavaAvro schema=java.util.UUID
LS
 #MACROFILE:"src/main/resources/schemas/SDNCOutputBodyType.avsc"
 LE
 
 schema create name=BBSAAIInfoTypeBBSClosedLoopStatusType flavour=Avro schema=LS
 #MACROFILE:"src/main/resources/schemas/BBSAAIInfoType.avsc"
 LEBBSClosedLoopStatusType.avsc"
 LE

 album create name=BBSClosedLoopStatusAlbum scope=policy writable=true schemaName=BBSClosedLoopStatusType
 
 album create name=ControlLoopExecutionIDAlbum scope=policy writable=true schemaName=UUIDType 
  
 schemaalbum create name=SDNCInputBodyTypeRequestIDVNFIDAlbum flavourscope=Avropolicy schemawritable=LStrue  #MACROFILE:"src/main/resources/schemas/SDNCInputBodyType.avsc"
 LE
 
 schemaschemaName=UUIDType
  
 event create name=SDNCOutputBodyType flavour=Avro schema=LS
 #MACROFILE:"src/main/resources/schemas/SDNCOutputBodyType.avsc"
 LE
 
 schema create name=BBSClosedLoopStatusType flavour=Avro schema=LS
 #MACROFILE:"src/main/resources/schemas/BBSClosedLoopStatusType.avsc"
 LE

 album create name=BBSClosedLoopStatusAlbum scope=policy writable=true schemaName=BBSClosedLoopStatusType
 
 album create name=ControlLoopExecutionIDAlbum scope=policy writable=true schemaName=UUIDType 
  
 album create name=RequestIDVNFIDAlbum scope=policy writable=true schemaName=UUIDType
  
 event ControlLoop-BBS-2179b738-fd36-4843-a71a-a8c24c70c88b version=1.0.2 nameSpace=org.onap.policy.apex.onap.bbs source=DCAE target=APEX
 
 event parameter create name=ControlLoop-BBS-2179b738-fd36-4843-a71a-a8c24c70c88b parName=closedLoopControlName schemaName=SimpleStringType
 event parameter create name=ControlLoop-BBS-2179b738-fd36-4843-a71a-a8c24c70c88b parName=closedLoopAlarmStart  schemaName=SimpleLongType
 event parameter create name=ControlLoop-BBS-2179b738-fd36-4843-a71a-a8c24c70c88b parName=closedLoopAlarmEnd    schemaName=SimpleLongType   optional=true
 event parameter create name=ControlLoop-BBS-2179b738-fd36-4843-a71a-a8c24c70c88b parName=closedLoopEventClient schemaName=SimpleStringType
 event parameter create name=ControlLoop-BBS-2179b738-fd36-4843-a71a-a8c24c70c88b version=1.0.2 nameSpace=org.onap.policy.apex.onap.bbs source=DCAE target=APEX
 
parName=closedLoopEventStatus schemaName=SimpleStringType
 event parameter create name=ControlLoop-BBS-2179b738-fd36-4843-a71a-a8c24c70c88b parName=closedLoopControlNamerequestID             schemaName=SimpleStringType
 event parameter create name=ControlLoop-BBS-2179b738-fd36-4843-a71a-a8c24c70c88b parName=closedLoopAlarmStarta8c24c70c88b parName=target_type           schemaName=SimpleLongTypeSimpleStringType
 event parameter create name=ControlLoop-BBS-2179b738-fd36-4843-a71a-a8c24c70c88b parName=closedLoopAlarmEndtarget             schemaName=SimpleLongType   optionalschemaName=trueSimpleStringType
 event parameter create name=ControlLoop-BBS-2179b738-fd36-4843-a71a-a8c24c70c88b parName=closedLoopEventClientfrom                  schemaName=SimpleStringType
 event parameter create name=ControlLoop-BBS-2179b738-fd36-4843-a71a-a8c24c70c88b parName=closedLoopEventStatusversion               schemaName=SimpleStringType
 event parameter create name=ControlLoop-BBS-2179b738-fd36-4843-a71a-a8c24c70c88b parName=requestID=AAI                   schemaName=BBSAAIInfoType
 
 event create name=BBSStateUpdatedEvent nameSpace=org.onap.policy.apex.onap.bbs    source=APEX target=APEX
 schemaName=SimpleStringType
 event parameter create name=ControlLoop-BBS-2179b738-fd36-4843-a71a-a8c24c70c88bBBSStateUpdatedEvent parName=target_type           requestID schemaName=SimpleStringTypeUUIDType
 event parameter create name=ControlLoop-BBS-2179b738-fd36-4843-a71a-a8c24c70c88bBBSStateUpdatedEvent parName=targetvnfID     schemaName=UUIDType
 
 event create name=SDNCResourceUpdate nameSpace=org.onap.policy.apex.onap.bbs source=APEX target=SDNC
 schemaName=SimpleStringType
 event parameter create name=ControlLoop-BBS-2179b738-fd36-4843-a71a-a8c24c70c88b=SDNCResourceUpdate parName=frombody                  schemaName=SimpleStringTypeSDNCInputBodyType
 event parameter create name=ControlLoop-BBS-2179b738-fd36-4843-a71a-a8c24c70c88bSDNCResourceUpdate parName=version               schemaName=SimpleStringType
 event parameter create name=ControlLoop-BBS-2179b738-fd36-4843-a71a-a8c24c70c88bSDNCResourceUpdate parName=AAIrpc-name            schemaName=SimpleStringType
 event parameter create name=SDNCResourceUpdate parName=service-instance-id schemaName=BBSAAIInfoTypeSimpleStringType
 event  eventparameter create name=BBSStateUpdatedEventSDNCResourceUpdate nameSpace=org.onap.policy.apex.onap.bbs source=APEX target=APEXparName=pon-uni       event parameter create name=BBSStateUpdatedEvent parName=requestID   schemaName=UUIDTypeSimpleStringType
 event parameter create name=BBSStateUpdatedEventSDNCResourceUpdate parName=vnfIDolt-nni             schemaName=UUIDTypeSimpleStringType
 
 event create name=SDNCResourceUpdate nameSpace=org.onap.policy.apex.onap.bbs source=APEX target=SDNC
 
 event parameter create name=SDNCResourceUpdate parName=body                schemaName=SDNCInputBodyTypeSDNCOutputBodyType
 event parameter create name=SDNCResourceUpdate parName=version             schemaName=SimpleStringType
 event parameter create name=SDNCResourceUpdate parName=rpc-name            schemaName=SimpleStringType
 event parameter create name=SDNCResourceUpdate parName=service-instance-id schemaName=SimpleStringType
 event parameter create name=SDNCResourceUpdate parName=pon-uni             schemaName=SimpleStringType
 event parameter create name=SDNCResourceUpdate parName=olt-nni             schemaName=SimpleStringType 
 
 event create name=SDNCResourceUpdateControlLoopLogEvent nameSpace=org.onap.policy.apex.onap.bbs source=APEX target=SDNCAPEX
  
 event parameter create name=SDNCResourceUpdateControlLoopLogEvent parName=bodyAAI                   schemaName=SDNCOutputBodyTypeVCPEAAIInfoType
 event parameter create name=SDNCResourceUpdateControlLoopLogEvent parName=versionclosedLoopControlName schemaName=SimpleStringType
 event parameter create name=ControlLoopLogEvent parName=closedLoopAlarmStart      schemaName=SimpleStringTypeSimpleLongType
 event parameter create name=SDNCResourceUpdateControlLoopLogEvent parName=rpc-nameclosedLoopAlarmEnd    schemaName=SimpleLongType   optional=true
 event parameter create name=ControlLoopLogEvent parName=closedLoopEventClient schemaName=SimpleStringType
 event parameter create name=SDNCResourceUpdateControlLoopLogEvent parName=service-instance-idclosedLoopEventStatus schemaName=SimpleStringType
 event parameter create name=SDNCResourceUpdateControlLoopLogEvent parName=pon-universion               schemaName=SimpleStringType
 event parameter create name=SDNCResourceUpdateControlLoopLogEvent parName=olt-nnirequestID             schemaName=SimpleStringType
 event parameter  event create name=ControlLoopLogEvent nameSpace=org.onap.policy.apex.onap.bbs source=APEX target=APEX
  parName=target_type           schemaName=SimpleStringType
 event parameter create name=ControlLoopLogEvent parName=AAI   target                schemaName=VCPEAAIInfoTypeSimpleStringType
 event parameter create name=ControlLoopLogEvent parName=closedLoopControlName schemaName=SimpleStringTypefrom            event parameter create name=ControlLoopLogEvent parName=closedLoopAlarmStart  schemaName=SimpleLongTypeSimpleStringType
 event parameter create name=ControlLoopLogEvent parName=closedLoopAlarmEndpolicyScope        schemaName=SimpleLongType   optionalschemaName=trueSimpleStringType
 event parameter create name=ControlLoopLogEvent parName=closedLoopEventClient schemaName=SimpleStringTypepolicyName       event parameter create name=ControlLoopLogEvent parName=closedLoopEventStatus schemaName=SimpleStringType
 event parameter create name=ControlLoopLogEvent parName=versionpolicyVersion               schemaName=SimpleStringType
 event parameter create name=ControlLoopLogEvent parName=requestIDnotification             schemaName=SimpleStringType
 event parameter create name=ControlLoopLogEvent parName=target_typemessage               schemaName=SimpleStringType
 event parameter create name=ControlLoopLogEvent parName=targetnotificationTime      schemaName=SimpleStringType
 
 task create name=GetBBSStateTask

 task inputfield create name=GetBBSStateTask fieldName=closedLoopControlName schemaName=SimpleStringType
 eventtask parameterinputfield create name=ControlLoopLogEventGetBBSStateTask parNamefieldName=fromclosedLoopAlarmStart  schemaName=SimpleLongType
 task inputfield create name=GetBBSStateTask fieldName=closedLoopAlarmEnd    schemaName=SimpleLongType      schemaName=SimpleStringTypeoptional=true
 eventtask parameterinputfield create name=ControlLoopLogEventGetBBSStateTask parNamefieldName=policyScopeclosedLoopEventClient schemaName=SimpleStringType
 task inputfield create      name=GetBBSStateTask fieldName=closedLoopEventStatus schemaName=SimpleStringType
 eventtask parameterinputfield create name=ControlLoopLogEventGetBBSStateTask parNamefieldName=policyNamerequestID             schemaName=SimpleStringType
 eventtask parameterinputfield create name=ControlLoopLogEventGetBBSStateTask parName=policyVersionfieldName=target_type           schemaName=SimpleStringType
 eventtask parameterinputfield create name=ControlLoopLogEventGetBBSStateTask parName=notificationfieldName=target                schemaName=SimpleStringType
 eventtask parameterinputfield create name=ControlLoopLogEventGetBBSStateTask parName=messagefieldName=from                  schemaName=SimpleStringType
 eventtask parameterinputfield create name=ControlLoopLogEventGetBBSStateTask parName=notificationTimefieldName=version         schemaName=SimpleStringType    task create nameschemaName=GetBBSStateTaskSimpleStringType
  task inputfield create name=GetBBSStateTask fieldName=closedLoopControlNameAAI schemaName=SimpleStringType  task inputfield create name=GetBBSStateTask fieldName=closedLoopAlarmStart  schemaName=SimpleLongType  task inputfield create name=GetBBSStateTask fieldName=closedLoopAlarmEnd    schemaName=SimpleLongTypeBBSAAIInfoType
  optional=true
 task inputfieldcontextref create name=GetBBSStateTask fieldNamealbumName=closedLoopEventClient schemaName=SimpleStringTypeBBSClosedLoopStatusAlbum
  
 task inputfieldoutputfield create name=GetBBSStateTask fieldName=closedLoopEventStatusrequestID schemaName=SimpleStringTypeUUIDType
 task inputfieldoutputfield create name=GetBBSStateTask fieldName=requestIDvnfID     schemaName=UUIDType
  
    schemaName=SimpleStringType
 task inputfieldlogic create name=GetBBSStateTask fieldNamelogicFlavour=target_type     JAVASCRIPT logic=LS
 #MACROFILE:"src/main/resources/logic/GetBBSStateTask.js"
 LE
 
 task create schemaName=SimpleStringTypename=SDNCResourceUpdateTask
  
 task inputfield create name=GetBBSStateTaskSDNCResourceUpdateTask fieldName=targetrequestID schemaName=UUIDType
 task inputfield create      name=SDNCResourceUpdateTask fieldName=vnfID     schemaName=SimpleStringTypeUUIDType
 
 task inputfieldoutputfield create name=GetBBSStateTaskSDNCResourceUpdateTask fieldName=from body                 schemaName=SimpleStringTypeSDNCInputBodyType
 task inputfieldoutputfield create name=GetBBSStateTaskSDNCResourceUpdateTask fieldName=version               schemaName=SimpleStringType
 task inputfieldoutputfield create name=GetBBSStateTaskSDNCResourceUpdateTask fieldName=AAIrpc-name       schemaName=SimpleStringType
 task outputfield create        schemaName=BBSAAIInfoType
  
 task contextrefname=SDNCResourceUpdateTask fieldName=correlation-id schemaName=SimpleStringType
 task outputfield create name=GetBBSStateTaskSDNCResourceUpdateTask albumNamefieldName=BBSClosedLoopStatusAlbumtype      task outputfield create name=GetBBSStateTask fieldName=requestID schemaName=UUIDTypeSimpleStringType
 
 task outputfieldcontextref create name=GetBBSStateTaskSDNCResourceUpdateTask fieldNamealbumName=vnfIDVCPEClosedLoopStatusAlbum
 task contextref create name=SDNCResourceUpdateTask schemaNamealbumName=UUIDTypeRequestIDVNFIDAlbum
  
 task logic create name=GetBBSStateTaskSDNCResourceUpdateTask logicFlavour=JAVASCRIPT logic=LS
 #MACROFILE:"src/main/resources/logic/GetBBSStateTaskSDNCResourceUpdateTask.js"
 LE
 
 task create name=SDNCResourceUpdateTask
 SDNCResourceUpdateRepTask

 task inputfield create name=SDNCResourceUpdateTaskSDNCResourceUpdateRepTask fieldName=requestID schemaName=UUIDTypebody       task inputfield create name=SDNCResourceUpdateTask fieldName=vnfID     schemaName=UUIDType
 BBSOutputBodyType
 task outputfieldinputfield create name=SDNCResourceUpdateTaskSDNCResourceUpdateRepTask fieldName=bodyversion             schemaName=SDNCInputBodyTypeSimpleStringType
 task outputfieldinputfield create name=SDNCResourceUpdateTaskSDNCResourceUpdateRepTask fieldName=versionrpc-name            schemaName=SimpleStringType
 task outputfieldinputfield create name=SDNCResourceUpdateTaskSDNCResourceUpdateRepTask fieldName=rpcservice-instance-name   id schemaName=SimpleStringType
 
 schemaName=SimpleStringType
 task outputfield create name=SDNCResourceUpdateTaskSDNCResourceUpdateRepTask fieldName=correlation-idrequestID   schemaName=SimpleStringTypeUUIDType
 task outputfield create name=SDNCResourceUpdateTaskSDNCResourceUpdateRepTask fieldName=type      pon-uni     schemaName=SimpleStringType
UUIDType

 task contextref create name=SDNCResourceUpdateTaskSDNCResourceUpdateRepTask albumName=VCPEClosedLoopStatusAlbumBBSClosedLoopStatusAlbum
 task contextref create name=SDNCResourceUpdateTaskSDNCResourceUpdateRepTask albumName=RequestIDVNFIDAlbum

 
 task logic create name=SDNCResourceUpdateTaskSDNCResourceUpdateRepTask logicFlavour=JAVASCRIPT logic=LS
 #MACROFILE:"src/main/resources/logic/SDNCResourceUpdateTaskSDNCResourceUpdateRepTask.js"
 LE

  task create name=SDNCResourceUpdateRepTask

 task inputfield create name=SDNCResourceUpdateRepTask fieldName=body                schemaName=BBSOutputBodyType
 task inputfield create name=SDNCResourceUpdateRepTask fieldName=version             schemaName=SimpleStringType
 task inputfield create name=SDNCResourceUpdateRepTask fieldName=rpc-name  ControlLoopLogTask
 
 task inputfield create   name=ControlLoopLogTask fieldName=requestID schemaName=SimpleStringTypeUUIDType
 task inputfield create name=SDNCResourceUpdateRepTaskControlLoopLogTask fieldName=service-instance-idpon-uni     schemaName=SimpleStringType
 UUIDType
 
 task outputfield create name=SDNCResourceUpdateRepTaskControlLoopLogTask fieldName=requestIDAAI        schemaName=UUIDType  task outputfield create name=SDNCResourceUpdateRepTask fieldName=pon-uni     schemaName=UUIDTypeVCPEAAIInfoType
  task contextrefoutputfield create name=SDNCResourceUpdateRepTask albumName=BBSClosedLoopStatusAlbumControlLoopLogTask fieldName=closedLoopControlName schemaName=SimpleStringType
 task contextrefoutputfield create name=SDNCResourceUpdateRepTaskControlLoopLogTask albumNamefieldName=RequestIDVNFIDAlbumclosedLoopAlarmStart  schemaName=SimpleLongType
 task logicoutputfield create name=SDNCResourceUpdateRepTaskControlLoopLogTask logicFlavourfieldName=JAVASCRIPT logic=LS
 #MACROFILE:"src/main/resources/logic/SDNCResourceUpdateRepTask.js"
 LE

 taskclosedLoopAlarmEnd    schemaName=SimpleLongType   optional=true
 task outputfield create name=ControlLoopLogTask fieldName=closedLoopEventClient schemaName=SimpleStringType
 task inputfieldoutputfield create name=ControlLoopLogTask fieldName=requestIDclosedLoopEventStatus schemaName=UUIDTypeSimpleStringType
 task inputfieldoutputfield create name=ControlLoopLogTask fieldName=pon-unirequestID             schemaName=UUIDType
 SimpleStringType
 task outputfield create name=ControlLoopLogTask fieldName=AAI   version                schemaName=VCPEAAIInfoTypeSimpleStringType
 task outputfield create name=ControlLoopLogTask fieldName=closedLoopControlNametarget_type           schemaName=SimpleStringType
 task outputfield create name=ControlLoopLogTask fieldName=closedLoopAlarmStarttarget                schemaName=SimpleLongTypeSimpleStringType
 task outputfield create name=ControlLoopLogTask fieldName=closedLoopAlarmEndfrom               schemaName=SimpleLongType   optionalschemaName=trueSimpleStringType
 task outputfield create name=ControlLoopLogTask fieldName=closedLoopEventClient schemaName=SimpleStringTypepolicyScope      task outputfield create name=ControlLoopLogTask fieldName=closedLoopEventStatus schemaName=SimpleStringType
 task outputfield create name=ControlLoopLogTask fieldName=requestID policyName            schemaName=SimpleStringType
 task outputfield create name=ControlLoopLogTask fieldName=versionpolicyVersion               schemaName=SimpleStringType
 task outputfield create name=ControlLoopLogTask fieldName=target_type notification          schemaName=SimpleStringType
 task outputfield create name=ControlLoopLogTask fieldName=target message               schemaName=SimpleStringType
 task outputfield create name=ControlLoopLogTask fieldName=fromnotificationTime      schemaName=SimpleStringType
 
 task contextref create    name=ControlLoopLogTask albumName=BBSClosedLoopStatusAlbum
 schemaName=SimpleStringType
 task outputfieldlogic create name=ControlLoopLogTask logicFlavour=JAVASCRIPT fieldName=policyScope      logic=LS
 #MACROFILE:"src/main/resources/logic/ControlLoopLogTask.js"
 LE
 
 policy create name=ReceiveEventPolicy template=Freestyle firstState=GetBBSState
  
 schemaName=SimpleStringType267 policy taskstate outputfield create name=ControlLoopLogTaskReceiveEventPolicy fieldNamestateName=policyNameAbatedState triggerName=VCPEStateUpdatedEvent defaultTaskName=ControlLoopLogTask
 268 policy state output create name=ReceiveEventPolicy stateName=AbatedState outputName=AbatedOutput schemaName=SimpleStringType
 task outputfieldeventName=ControlLoopLogEvent
 269 policy state taskref create name=ControlLoopLogTaskReceiveEventPolicy fieldNamestateName=policyVersionAbatedState taskName=ControlLoopLogTask outputType=DIRECT outputName=AbatedOutput
 270 
 271 schemaName=SimpleStringTypepolicy state taskcreate outputfield create name=ControlLoopLogTask fieldName=notification          schemaName=SimpleStringType
 task outputfield create name=ControlLoopLogTask fieldName=message               schemaName=SimpleStringType
 task outputfield create name=ControlLoopLogTask fieldName=notificationTime      schemaName=SimpleStringType
 
 taskname=ReceiveEventPolicy stateName=OnsetOrAbatedState triggerName=VCPEStateUpdatedEvent defaultTaskName=AbatedTask
 272 policy state output create name=ReceiveEventPolicy stateName=OnsetOrAbatedState outputName=OnsetOutput eventName=GuardRequestEvent
 273 policy state taskref create name=ReceiveEventPolicy stateName=OnsetOrAbatedState taskName=GuardRequestTask outputType=DIRECT outputName=OnsetOutput
 274 policy state output create name=ReceiveEventPolicy stateName=OnsetOrAbatedState outputName=AbatedOutput eventName=VCPEStateUpdatedEvent nextState=AbatedState
 275 policy state taskref create name=ReceiveEventPolicy stateName=OnsetOrAbatedState taskName=AbatedTask outputType=DIRECT outputName=AbatedOutput
 276 
 277 policy state contextref create name=ReceiveEventPolicy stateName=ControlLoopLogTaskOnsetOrAbatedState albumName=BBSClosedLoopStatusAlbumVCPEClosedLoopStatusAlbum
 278 
 279 policy taskstate logicselecttasklogic create name=ControlLoopLogTaskReceiveEventPolicy stateName=OnsetOrAbatedState logicFlavour=JAVASCRIPT logic=LS
 280 #MACROFILE:"src/main/resources/logic/ControlLoopLogTaskReceiveEventPolicyOnsetOrAbatedStateTSL.js"
 281 LE
 282 
policy create name=ReceiveEventPolicy template=Freestyle firstState=GetBBSState
  
 267 283 policy state create name=ReceiveEventPolicy stateName=AbatedStateGetVCPEState triggerName=VCPEStateUpdatedEventControlLoop-vCPE-85317438-861d-42a9-979e-9d96dc0a9ef1 defaultTaskName=ControlLoopLogTaskGetVCPEStateTask
 268284 policy state output create name=ReceiveEventPolicy stateName=AbatedStateGetVCPEState outputName=AbatedOutputGetVCPEStateOutput eventName=VCPEStateUpdatedEvent nextState=ControlLoopLogEventOnsetOrAbatedState
 269285 policy state taskref create name=ReceiveEventPolicy stateName=AbatedStateGetVCPEState taskName=ControlLoopLogTaskGetVCPEStateTask outputType=DIRECT outputName=AbatedOutput
 270=GetVCPEStateOutput
 286 
 287 policy create name=RestartAPPCRequestPolicy template=Freestyle firstState=PolicyGuardResponseState
 288 
 271289 policy state create name=ReceiveEventPolicyRestartAPPCRequestPolicy stateName=OnsetOrAbatedStateDeniedState triggerName=VCPEStateUpdatedEvent defaultTaskName=AbatedTaskControlLoopLogTask
 272290 policy state output create name=ReceiveEventPolicyRestartAPPCRequestPolicy stateName=OnsetOrAbatedStateDeniedState outputName=OnsetOutputDeniedOutput eventName=GuardRequestEventControlLoopLogEvent
 273291 policy state taskref create name=ReceiveEventPolicyRestartAPPCRequestPolicy stateName=OnsetOrAbatedStateDeniedState taskName=GuardRequestTaskControlLoopLogTask outputType=DIRECT outputName=OnsetOutput
 274=DeniedOutput
 292 
 293 policy state create name=RestartAPPCRequestPolicy stateName=PermitOrDenyState triggerName=VCPEStateUpdatedEvent defaultTaskName=DeniedTask
 294 policy state output create name=ReceiveEventPolicyRestartAPPCRequestPolicy stateName=OnsetOrAbatedStatePermitOrDenyState outputName=AbatedOutputPermitOutput eventName=VCPEStateUpdatedEventAPPCRestartVNFRequestEvent
nextState=AbatedState  275295 policy state taskref create name=ReceiveEventPolicyRestartAPPCRequestPolicy stateName=OnsetOrAbatedStatePermitOrDenyState taskName=AbatedTaskAPPCRestartVNFRequestTask outputType=DIRECT outputName=AbatedOutputPermitOutput
 276296 
 277 policy state contextrefoutput create name=ReceiveEventPolicyRestartAPPCRequestPolicy stateName=PermitOrDenyState outputName=OnsetOrAbatedStateDenyOutput albumNameeventName=VCPEClosedLoopStatusAlbumVCPEStateUpdatedEvent nextState=DeniedState
278 
297 279 policy state selecttasklogictaskref create name=ReceiveEventPolicyRestartAPPCRequestPolicy stateName=OnsetOrAbatedStatePermitOrDenyState logicFlavourtaskName=JAVASCRIPTDeniedTask logicoutputType=LSDIRECT outputName=DenyOutput
280 #MACROFILE:"src/main/resources/logic/ReceiveEventPolicyOnsetOrAbatedStateTSL.js" 298 
281 LE
 282 
 283 299 policy state create name=ReceiveEventPolicyRestartAPPCRequestPolicy stateName=GetVCPEStatePolicyGuardResponseState triggerName=ControlLoop-vCPE-85317438-861d-42a9-979e-9d96dc0a9ef1GuardResponseEvent defaultTaskName=GetVCPEStateTaskGuardResponseTask
 284300 policy state output create name=ReceiveEventPolicyRestartAPPCRequestPolicy stateName=GetVCPEStatePolicyGuardResponseState outputName=GetVCPEStateOutputGuardResponseOutput eventName=VCPEStateUpdatedEvent nextState=OnsetOrAbatedStatePermitOrDenyState
 285301 policy state taskref create name=ReceiveEventPolicyRestartAPPCRequestPolicy stateName=GetVCPEStatePolicyGuardResponseState taskName=GetVCPEStateTaskGuardResponseTask outputType=DIRECT outputName=GetVCPEStateOutputGuardResponseOutput
 302 
286 303 policy 287state policycontextref create name=RestartAPPCRequestPolicy templatestateName=FreestylePermitOrDenyState firstStatealbumName=PolicyGuardResponseStateVCPEClosedLoopStatusAlbum
 288304 
 289305 policy state selecttasklogic create name=RestartAPPCRequestPolicy stateName=DeniedStatePermitOrDenyState triggerNamelogicFlavour=VCPEStateUpdatedEventJAVASCRIPT defaultTaskNamelogic=ControlLoopLogTaskLS
 290 policy state output create name=RestartAPPCRequestPolicy stateName=DeniedState outputName=DeniedOutput eventName=ControlLoopLogEvent
 291 policy state taskref306 #MACROFILE:"src/main/resources/logic/RestartAPPCRequestPolicyPermitOrDenyTSL.js"
 307 LE
 308 
 309 policy create name=RestartAPPCRequestPolicyRestartAPPCResponsePolicy stateNametemplate=DeniedStateFreestyle taskNamefirstState=ControlLoopLogTaskRestartAPPCResponseState
outputType=DIRECT outputName=DeniedOutput 310 
292 
 293311 policy state create name=RestartAPPCRequestPolicyRestartAPPCResponsePolicy stateName=PermitOrDenyStateResponseLogState triggerName=VCPEStateUpdatedEvent defaultTaskName=DeniedTaskControlLoopLogTask
 294312 policy state output create name=RestartAPPCRequestPolicyRestartAPPCResponsePolicy stateName=PermitOrDenyStateResponseLogState outputName=PermitOutputResponseLogOutput eventName=APPCRestartVNFRequestEventControlLoopLogEvent
 295313 policy state taskref create name=RestartAPPCRequestPolicyRestartAPPCResponsePolicy stateName=PermitOrDenyStateResponseLogState taskName=APPCRestartVNFRequestTaskControlLoopLogTask outputType=DIRECT outputName=PermitOutputResponseLogOutput
 314 
 296315 policy state output create name=RestartAPPCRequestPolicyRestartAPPCResponsePolicy stateName=PermitOrDenyStateRestartAPPCResponseState outputNametriggerName=DenyOutputAPPCRestartVNFResponseEvent eventName=VCPEStateUpdatedEvent nextState=DeniedStatedefaultTaskName=APPCRestartVNFResponseTask
 297316 policy state taskrefoutput create name=RestartAPPCRequestPolicyRestartAPPCResponsePolicy stateName=PermitOrDenyStateRestartAPPCResponseState taskNameoutputName=DeniedTaskAPPCRestartVNFResponseOutput outputTypeeventName=DIRECTVCPEStateUpdatedEvent outputNamenextState=DenyOutputResponseLogState
 298 
 299317 policy state taskref create name=RestartAPPCRequestPolicyRestartAPPCResponsePolicy stateName=PolicyGuardResponseState triggerName=GuardResponseEvent defaultTaskName=GuardResponseTask
 300 policy state output create name=RestartAPPCRequestPolicy stateName=PolicyGuardResponseState outputName=GuardResponseOutput eventName=VCPEStateUpdatedEvent nextState=PermitOrDenyState
 301 policy state taskref create name=RestartAPPCRequestPolicy stateName=PolicyGuardResponseState taskName=GuardResponseTask outputType=DIRECT outputName=GuardResponseOutput
 302 
 303 policy state contextref create name=RestartAPPCRequestPolicy stateName=PermitOrDenyState albumName=VCPEClosedLoopStatusAlbum
 304 
 305 policy state selecttasklogic create name=RestartAPPCRequestPolicy stateName=PermitOrDenyState logicFlavour=JAVASCRIPT logic=LS
 306 #MACROFILE:"src/main/resources/logic/RestartAPPCRequestPolicyPermitOrDenyTSL.js"
 307 LE
 308 
 309 policy create name=RestartAPPCResponsePolicy template=Freestyle firstState=RestartAPPCResponseState
 310 
 311 policy state create name=RestartAPPCResponsePolicy stateName=ResponseLogState triggerName=VCPEStateUpdatedEvent defaultTaskName=ControlLoopLogTask
 312 policy state output create name=RestartAPPCResponsePolicy stateName=ResponseLogState outputName=ResponseLogOutput eventName=ControlLoopLogEvent
 313 policy state taskref create name=RestartAPPCResponsePolicy stateName=ResponseLogState taskName=ControlLoopLogTask outputType=DIRECT outputName=ResponseLogOutput
 314 
 315 policy state create name=RestartAPPCResponsePolicy stateName=RestartAPPCResponseState triggerName=APPCRestartVNFResponseEvent defaultTaskName=APPCRestartVNFResponseTask
 316 policy state output create name=RestartAPPCResponsePolicy stateName=RestartAPPCResponseState outputName=APPCRestartVNFResponseOutput eventName=VCPEStateUpdatedEvent nextState=ResponseLogState
 317 policy state taskref create name=RestartAPPCResponsePolicy stateName=RestartAPPCResponseState taskName=APPCRestartVNFResponseTask outputType=DIRECT outputName=APPCRestartVNFResponseOutput
 318 
 319 validate
 320 
Logic Artifacts
RestartAPPCResponseState taskName=APPCRestartVNFResponseTask outputType=DIRECT outputName=APPCRestartVNFResponseOutput
 318 
 319 validate
 320 



Logic Artifacts

Code Block
languagetext
firstline1
titleNomadic ONT Apex Policy
linenumberstrue
collapsetrue

Schema

Code Block
languagetext
firstline1
titleSchema Aritifacts
linenumberstrue
collapsetrue

Operational Policy High Level

Operational Policy

A simple open loop operation policy to support the completeness of BBS control loop.

Code Block
languagetext
firstline1
titleNomadic ONT Operation Policy
linenumberstrue
collapsetrue
controlLoop:
  version: 2.0.0
  controlLoopName: ControlLoop-Nomadic-ONT-2179b738-fd36-4843-a71a-a8c24c70c88b
  trigger_policy: unique-policy-id-16-ServiceModify
  timeout: 3600
  abatement: false
    
policies:
  - id: unique-policy-id-16-ResourceUpdate
    name: Resource Update
    description:
    actor: SDNC
    recipe: resourceUpdate
    target:
      type: VM
    retry: 3
    timeout: 1200
    success: final_success
    failure: final_failure
    failure_timeout: final_failure_timeout
    failure_retries: final_failure_retries
    failure_exception: final_failure_exception
    failure_guard: final_failure_guard
 


SDNC API/Recipe

Code Block
languagetext
firstline1
titleSDNC API for BBS Nomadic ONT
linenumberstrue
collapsetrue
# No supported in Dublin for now...


A&AI APIs

A&AI APIs Called Directly By Operational Policy

API for updating the service-instance is the same as before and only this one need to be called twice during ONT Relocation Policy execution. 

Code Block
languagetext
firstline1
titleNomadic ONT Apex Policy Service Status Update
linenumberstrue
collapsetrue

Schema

Code Block
languagetext
firstline1
titleSchema Aritifacts
linenumberstrue
collapsetrue

Pdp-D Option

Operational Policy

A simple open loop operation policy to support the completeness of BBS control loop.
PUT
/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}

A&AI APIs Called Indirectly Through SO/SDNC 

To update the attachment point of the PNF, when the old logical-link object is deleted, it should be automatically removed from the pnf relationship-list, then create a new logical-link object and PUT it into the pnf relationship-list, e.g. as the following

Code Block
languagetext
firstline1
titleNomadic ONT Operation Policy
linenumberstrue
collapsetrue
ontrolLoop:
  version: 2.0.0
  controlLoopName: ControlLoop-BBS-Open-2179b738-fd36-4843-a71a-a8c24c70c88b
  services:
	- serviceName: service (or Swisscom BBS)
  resources:
	- resourceType: ONT
	- resourceName: Huawei Access SDN M&C
  trigger_policy: final_openloop 
  timeout: 0
   
policies:
  
SDNC API/Recipe
Update PNF
linenumberstrue
collapsetrue
PUT /network/pnfs/pnf/{pnf-name}/relationship-list/relationship

To update the metadata on the service-instance, use the PUT on the metadatum objects. If there are new objects, then add them to the relationship-list on the cp/pnf/generic-vnf, etc, e.g. as the following

Code Block
languagetext
firstline1
titleSDNC API for BBS Nomadic ONTUpdate service meta data
linenumberstrue
collapsetrue
# No supported in Dublin for now...PUT /business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/metadata/metadatum/{metaname}

PUT
/network/generic-vnfs/generic-vnf/{vnf-id}/relationship-list/relationship


Design Time Artifacts

DCAE-DS

Micro-service Blueprints

Code Block
languagetext
firstline1
titleMS Blueprints
linenumberstrue
collapsetrue


CLAMP

Control Loop (Micro-service) Orchestration

There are basically 2 ways of CL creation and micro-service orchestration in BBS Nomadic ONT scenario.

  1.  Restconf collector + VES Mapper + PRH + Policy Engine
  2.  VES Collector + PRH + Policy Engine


Notes:

Interestingly,  this is the first case where DCAE/Policy seem playing roles together in a non-closed/loop or service assurance in sense of usage/solution in ONAP domain,  However,  this does not really matter in the sense of micro services since service is a service as long as it provides the functionality that meets the requirements in a solution, An argument could be that Policy engine does not have to be introduced in this case, However, the important functionality for policy engine is to decouple action takers from the trigger pullers and ultimately establish robust policy driving on this platform w/o code change.