Basic steps (Nomadic_ONT):

1) BBS policy triggered by DMaaP message from BBS uS: topicName=unauthenticated.DCAE_CL_OUTPUT, policyName=Nomadic_ONT, policyScope=reRegPolicyScope

unauthenticated.DCAE_CL_OUPUT Nomadic_ONT
[
"{
	\"closedLoopEventClient\":\"DCAE.BBS_event_processor_mSInstance\",
	\"policyVersion\":\"1.0.0.5\",
	\"policyName\":\"Nomadic_ONT\",
	\"policyScope\":\"reRegPolicyScope\",
	\"target_type\":\"VM\",
	\"AAI\":{
		\"attachmentPoint\":\"olt11-1-1\",
		\"service-information.hsia-cfs-service-instance-id\":\"1923eaa8-8ab7-49ef-b4c2-e185efbbe832\",
		\"cvlan\":\"1005\",
		\"svlan\":\"100\",
		\"remoteId\":\"some-remote-id\"
	},
	\"closedLoopAlarmStart\":1553067455,
	\"closedLoopEventStatus\":\"ONSET\",
	\"closedLoopControlName\":\"reRegControlName\",
	\"version\":\"1.0.2\",
	\"target\":\"vserver.vserver-name\",
	\"requestID\":\"407a6515-4b10-46ad-a249-efe529a36c69\",
	\"from\":\"DCAE\"
}"
]

From DMaaP message:

  • attachmentPoint=olt11-1-1
  • service-information.hsia-cfs-service-instance-id={{bbs-cfs-service-instance-UUID}}
  • cvlan=1005
  • svlan=100
  • remote-id={{remote-id}}

2) BBS Policy updates orchestration status of {{bbs-cfs-service-instance-UUID}} [ active --> assigned ]

GET service instance
curl -X GET \
  https://172.30.0.67:30233/aai/v14/business/customers/customer/{{business-customer-UUID}}/service-subscriptions/service-subscription/{{bbs-cfs-service-type}}/service-instances/service-instance/{{bbs-cfs-service-instance-UUID}} \
  -H 'Accept: application/json' \
  -H 'Authorization: Basic QUFJOkFBSQ==' \
  -H 'Content-Type: application/json' \
  -H 'Postman-Token: 9de15944-f781-42fa-87e8-20e4c68ad10d' \
  -H 'X-FromAppId: Postman Application' \
  -H 'X-TransactionId: Postman REST Transaction' \
  -H 'cache-control: no-cache'


Response:
{
    "service-instance-id": "0696d471-9e10-445e-94ca-3b1c5c36701d",
    "resource-version": "1553592695895",
    "orchestration-status": "active",
    "relationship-list": {
        "relationship": [
            {
                "related-to": "service-instance",
                "relationship-label": "org.onap.relationships.inventory.ComposedOf",
                "related-link": "/aai/v14/business/customers/customer/56ab76fa-6f15-442f-a2c1-4fa5f4b39447/service-subscriptions/service-subscription/BBS-CFS-Access_Test/service-instances/service-instance/e23ba25e-47fb-4748-bb53-2ec31fe49a74",
                "relationship-data": [
                    {
                        "relationship-key": "customer.global-customer-id",
                        "relationship-value": "56ab76fa-6f15-442f-a2c1-4fa5f4b39447"
                    },
                    {
                        "relationship-key": "service-subscription.service-type",
                        "relationship-value": "BBS-CFS-Access_Test"
                    },
                    {
                        "relationship-key": "service-instance.service-instance-id",
                        "relationship-value": "e23ba25e-47fb-4748-bb53-2ec31fe49a74"
                    }
                ],
                "related-to-property": [
                    {
                        "property-key": "service-instance.service-instance-name"
                    }
                ]
            }
        ]
    }
}
PUT orchestration-status
curl -X PUT \
  'https://172.30.0.67:30233/aai/v14/business/customers/customer/{{business-customer-UUID}}/service-subscriptions/service-subscription/{{bbs-cfs-service-type}}/service-instances/service-instance/{{bbs-cfs-service-instance-UUID}}?resource-version=1553592695895' \
  -H 'Accept: application/json' \
  -H 'Authorization: Basic QUFJOkFBSQ==' \
  -H 'Content-Type: application/json' \
  -H 'Postman-Token: 00fbdcf8-e4d3-467f-a63a-d666a78b3cd6' \
  -H 'X-FromAppId: Postman Application' \
  -H 'X-TransactionId: Postman REST Transaction' \
  -H 'cache-control: no-cache' \
  -d '{
    "service-instance-id": "0696d471-9e10-445e-94ca-3b1c5c36701d",
    "resource-version": "1553592695895",
    "orchestration-status": "assigned",
    "relationship-list": {
        "relationship": [
            {
                "related-to": "service-instance",
                "relationship-label": "org.onap.relationships.inventory.ComposedOf",
                "related-link": "/aai/v14/business/customers/customer/56ab76fa-6f15-442f-a2c1-4fa5f4b39447/service-subscriptions/service-subscription/BBS-CFS-Access_Test/service-instances/service-instance/e23ba25e-47fb-4748-bb53-2ec31fe49a74",
                "relationship-data": [
                    {
                        "relationship-key": "customer.global-customer-id",
                        "relationship-value": "56ab76fa-6f15-442f-a2c1-4fa5f4b39447"
                    },
                    {
                        "relationship-key": "service-subscription.service-type",
                        "relationship-value": "BBS-CFS-Access_Test"
                    },
                    {
                        "relationship-key": "service-instance.service-instance-id",
                        "relationship-value": "e23ba25e-47fb-4748-bb53-2ec31fe49a74"
                    }
                ],
                "related-to-property": [
                    {
                        "property-key": "service-instance.service-instance-name"
                    }
                ]
            }
        ]
    }
}'

3) BBS Policy fetches from AAI {{bbs-cfs-service-instance-UUID}} relationship-list, including: CPE PNF ID, AccessConnectivity VF ID, InternetProfile VF ID

GET HSIA Service Instance relationship-list
curl -X GET \
 'https://aai.api.simpledemo.openecomp.org:30233/aai/v11/business/customers/customer/{{business-customer-UUID}}/service-subscriptions/service-subscription/{{bbs-cfs-service-type}}/service-instances/service-instance/{{bbs-cfs-service-instance-UUID}}?depth=all' \
 -H 'Accept: application/json' \
 -H 'Authorization: Basic TW9kZWxMb2FkZXI6TW9kZWxMb2FkZXI=' \
 -H 'Content-Type: application/json' \
 -H 'Postman-Token: f799a782-ce93-4179-8739-71174aeb1028' \
 -H 'X-FromAppId: AAI' \
 -H 'X-TransactionId: jimmy-postman' \
 -H 'cache-control: no-cache'

Response:

{
 "service-instance-id": "535ee766-09ea-4815-a186-a316c393e849",
 "resource-version": "1553614797867",
 "orchestration-status": "assigned",
 "relationship-list": {
	 "relationship": [
		 {
		 "related-to": "pnf",
		 "relationship-label": "org.onap.relationships.inventory.ComposedOf",
		 "related-link": "/aai/v14/network/pnfs/pnf/pnf",
		 "relationship-data": [
		 	{
		 		"relationship-key": "pnf.pnf-name",
		 		"relationship-value": "pnf"
		 	}
	 		]
	 	}
	 ]
 },
 "metadata": {
 	"metadatum": [
 		{
 			"metaname": "cvlan",
 			"metaval": "1005",
			"resource-version": "1553614797883"
 		},
 		{
			"metaname": "svlan",
 			"metaval": "100",
			"resource-version": "1553614797909"
 		}
 	]
 }	
}


4) BBS Policy calls SDN-C GR-API to delete AccessConnectivity VF ID

SDNC GR-API DeleteAccessConnectivityInstance
 


5) BBS Policy calls SDN-C GR-API to create new AccessConnectivity VF [Needs to find out which Access SDN M&C to use, how?]

SDNC GR-API CreateAccessConnectivityInstance
 

6) BBS Policy calls SDN-C GR-API to update InternetProfile VF

SDNC GR-API ChangeInternetProfileInstance
 

7) BBS Policy updates  {{bbs-cfs-service-instance-UUID}} orchestration-status [ assigned --> created ]

PUT orchestration status
 

Basic steps (CPE Authentication):

8) BBS policy triggered by DMaaP message from BBS uS: topicName=unauthenticated.DCAE_CL_OUTPUT, policyName=CPE_Authentication, policyScope=policyScopeCpeAuth

unauthenticated.DCAE_CL_OUPUT CPE_Authentication
[
    "{\"closedLoopEventClient\":\"DCAE.BBS_event_processor_mSInstance\",\"policyVersion\":\"1.0.0.5\",\"policyName\":\"CPE_Authentication\",\"policyScope\":\"policyScopeCpeAuth\",\"target_type\":\"VM\",\"AAI\":{\"cpe.old-authentication-state\":\"outOfService\",\"cpe.new-authentication-state\":\"inService\",\"cpe.swVersion\":\"1.2.3\",\"service-information.hsia-cfs-service-instance-id\":\"1923eaa8-8ab7-49ef-b4c2-e185efbbe832\"},\"closedLoopAlarmStart\":1552997462,\"closedLoopEventStatus\":\"ONSET\",\"closedLoopControlName\":\"clControlNameCpeAuth\",\"version\":\"1.0.2\",\"target\":\"vserver.vserver-name\",\"requestID\":\"d76541f3-7f55-4c80-b0a0-ec5dee2a56cb\",\"from\":\"DCAE\"}"
]

9) If swVersion is present in the VES message's Additional information "swVersion", the BBS policy updates the PNF instances swVersion field. [not needed for demo]

10) The BBS policy changes the CFS service instance's orchestration status [ created --> active ]

  • newState: InService → orchestration status: Active
  • newState: OutofService → orchestration status: Inactive (assigned)

PUT orchestration status
 

Deploying the BBS Policy in APEX

At the moment, the BBS policy is included as an example under APEX in the Policy Framework. This means that every time the policy is changed, if the example deployment packed in APEX is used, there is a need to re-release the APEX image to pick up the use case changes. For example, some last minute changes have been raised in the JIRA below:

POLICY-1831 - BBS Apex Policy vendor --> manufacturer Submitted

Now that the new Policy Framework architecture is released, the BBS policy can be deployed using the new Policy architecture, see The ONAP Policy Framework and TO BE DELETED - refer to Dublin Documentation. Rather than having to update the APEX image every time the BBS policy changes, we should use the ONAP Policy Framework infrastructure to deploy the policy.

Pamela Dragosh David Perez Caparrosuser-f79d0 Let's discuss this.

  • No labels

6 Comments

  1. Liam Fallon we still need to try nomadic ONT using BBS policy after making small changes in SDNC DGs. I'd rather not to change the way we deploy policy at the moment, at least in Dublin, so that we don't introduce new potential issues. Can we maybe incorporate those last minute changes that we pushed to gerrit? we can test the new policy framework in R5/R6.

  2. We have verified that the new architecture works very well for deploying policies. If you are at the DDF next week, we could have a go at doing it with the BBS policy. Otherwise we will have to release a new APEX image.

  3. Liam Fallon is it too cumbersome to cherry pick this change to dublin APEX image now? otherwise we need add extra instructions steps to re-install the BBS policy in the release notes...

    1. David Perez Caparros The issue is that a new APEX image has to be released on Dublin. Maybe the best thing to do is to cherry pick and release a new image on this occasion as this issue has made it onto the TSC Daily Defect list. Let's dicuss with Pamela Dragosh later in the day.

      We can then use deployment using the new architecture for any subsequent changes. We can perhaps try it out this week at the DDF if you are there.

      1. ok, sounds good to me. Let's discuss in the PTL call

    2. David - missed you on the PTL call. As noted in the gerrit review for the fix, please cherry pick the fix to dublin branch. If a released image is required, then help the Policy team by bumping the patch version for the apex repo. Instructions here:  Policy R4 Dublin Independent Versioning And Release Process Plan

      Going forward in El Alto, BBS Use case must use the API to create policies. Baking policies into released images will not be allowed going forward, for obvious reasons.