5 BBS (Broadband Service)
6 -----------------------
10 The BBS use case proposes using ONAP for the design, provisioning, life-cycle
11 management and assurance of broadband services. BBS focuses on multi-Gigabit
12 Internet Connectivity services based on PON (Passive Optical Network) access
15 In Frankfurt release, BBS enables ONAP to
17 1. Establish a subscriber's HSIA (High Speed Internet Access) service from an ONT (Optical Network Termination unit) to the Internet drain
19 - The HSIA service is designed and deployed using ONAP's design and deployment capabilities
20 - The HSIA service activation is initiated via ONAP's External APIs and orchestrated and controlled using ONAP orchestration and control capabilities. The control capabilities leverage a 3rd party controller to implement the requested actions within the technology domain/location represented by the domain specific SDN management and control function.
22 2. Detect the change of location for ONT devices (Nomadic ONT devices)
24 - PNF (Re-)Registration for an ONT
26 - Subscriber association to an ONT via ONAP's External APIs
27 - ONT association with a expected Access UNI (PON port) when a HSIA service is created/deployed for a subscriber
28 - PNF (Re-)Registration using ONAP's PNF registration capabilities
30 - Service location modification that is detected by ONAP's analytic and initiated via the closed loop capabilities
32 - The closed loop capabilities invoke a HSIA location change service that
33 is orchestrated and controlled using ONAP capabilities and 3rd party controllers
37 **Figure 1. Architecture Overview**
41 BBS relies on key ONAP components such as External API, SO, AAI, SDC, Policy
42 (APEX engine), DCAE (PRH, BBS Event Processor, VES collector, VES mapper,
43 RESTCONF collector) and SDNC
47 **Figure 2. System View**
49 System Set Up and configuration
50 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
52 SO: Custom Workflow Configuration
53 =================================
57 ~/oom/kubernetes# kubectl edit cm dev-so-bpmn-infra-app-configmap
59 ## replace "workflow:\n CreateGenericVNFV1:\n"
60 ## with "workflow:\n custom:\n BBS_E2E_Service:\n sdnc:\n need: true\n CreateGenericVNFV1:\n"
63 ~/oom/kubernetes# kubectl delete po dev-so-so-bpmn-infra-7556d7f6bc-8fthk
66 As shown below, new entries need to be inserted manually in SO database (mariadb-galera) in order to map a given resource model to a specific BPMN recipe. For instance, the CPE is modeled in SDC as a VF but it is treated as PNF resource by SO by using the handlePNF BPMN recipe. Those entries need to be inserted in catalogdb database > vnf_recipe table.
68 IMPORTANT: make sure vnf_recipe.NF_ROLE matches vnf_resource.MODEL_NAME, and vnf_recipe.VERSION_STR matches vnf_resource.MODEL_VERSION.
72 root@onap-rancher-daily:/home/ubuntu# kubectl exec -ti dev-mariadb-galera-0 sh
73 sh-4.2$ mysql -u root -p
74 MariaDB [(none)]> use catalogdb;
75 MariaDB [catalogdb]> INSERT INTO vnf_recipe (NF_ROLE, ACTION, SERVICE_TYPE, VERSION_STR, DESCRIPTION, ORCHESTRATION_URI, VNF_PARAM_XSD, RECIPE_TIMEOUT)
77 ("InternetProfile", "createInstance", "NF", "1.0", "create InternetProfile", "/mso/async/services/CreateSDNCNetworkResource", '{"operationType":"AccessConnectivity"}', 180000),
78 ("AccessConnectivity", "createInstance", "NF", "1.0", "create AccessConnectivity", "/mso/async/services/CreateSDNCNetworkResource", '{"operationType":"InternetProfile"}', 180000),
79 ("CPE", "createInstance", "NF", "1.0", "create CPE", "/mso/async/services/HandlePNF", NULL, 180000);
81 MariaDB [catalogdb]> select * from vnf_recipe where NF_ROLE IN ('AccessConnectivity','InternetProfile', 'CPE');
82 +-------+--------------------+----------------+--------------+-------------+---------------------------+-----------------------------------------------+----------------------------------------+----------------+---------------------+--------------+
83 | id | NF_ROLE | ACTION | SERVICE_TYPE | VERSION_STR | DESCRIPTION | ORCHESTRATION_URI | VNF_PARAM_XSD | RECIPE_TIMEOUT | CREATION_TIMESTAMP | VF_MODULE_ID |
84 +-------+--------------------+----------------+--------------+-------------+---------------------------+-----------------------------------------------+----------------------------------------+----------------+---------------------+--------------+
85 | 10048 | InternetProfile | createInstance | NF | 1.0 | create InternetProfile | /mso/async/services/CreateSDNCNetworkResource | {"operationType":"InternetProfile"} | 1800000 | 2020-01-20 17:43:07 | NULL |
86 | 10051 | AccessConnectivity | createInstance | NF | 1.0 | create AccessConnectivity | /mso/async/services/CreateSDNCNetworkResource | {"operationType":"AccessConnectivity"} | 1800000 | 2020-01-20 17:43:07 | NULL |
87 | 10054 | CPE | createInstance | NF | 1.0 | create CPE | /mso/async/services/HandlePNF | NULL | 1800000 | 2020-01-20 17:43:07 | NULL |
88 +-------+--------------------+----------------+--------------+-------------+---------------------------+-----------------------------------------------+----------------------------------------+----------------+---------------------+--------------+
89 3 rows in set (0.00 sec)
95 Create the required topics in DMaaP
100 https://mr.api.simpledemo.openecomp.org:30226/topics/create \
101 -H 'Accept: application/json' \
102 -H 'Content-Type: application/json' \
103 -H 'cache-control: no-cache' \
105 "topicName": "unauthenticated.DCAE_CL_OUTPUT",
106 "topicDescription": "",
107 "partitionCount": "",
108 "replicationCount": "3"
112 https://mr.api.simpledemo.openecomp.org:30226/topics/create \
113 -H 'Accept: application/json' \
114 -H 'Content-Type: application/json' \
115 -H 'cache-control: no-cache' \
117 "topicName": "unauthenticated.CPE_AUTHENTICATION",
118 "topicDescription": "",
119 "partitionCount": "",
120 "replicationCount": "3"
124 https://mr.api.simpledemo.openecomp.org:30226/topics/create \
125 -H 'Accept: application/json' \
126 -H 'Content-Type: application/json' \
127 -H 'cache-control: no-cache' \
129 "topicName": "unauthenticated.PNF_READY",
130 "topicDescription": "",
131 "partitionCount": "",
132 "replicationCount": "3"
136 https://mr.api.simpledemo.openecomp.org:30226/topics/create \
137 -H 'Accept: application/json' \
138 -H 'Content-Type: application/json' \
139 -H 'cache-control: no-cache' \
141 "topicName": "unauthenticated.PNF_UPDATE",
142 "topicDescription": "",
143 "partitionCount": "",
144 "replicationCount": "3"
147 curl -k 'https://mr.api.simpledemo.openecomp.org:30226/topics'
151 "org.onap.dmaap.mr.PNF_REGISTRATION",
152 "unauthenticated.DCAE_CL_OUTPUT",
154 "SDC-DISTR-STATUS-TOPIC-AUTO",
155 "SDC-DISTR-NOTIF-TOPIC-AUTO",
156 "org.onap.dmaap.mr.PNF_READY",
157 "unauthenticated.PNF_READY",
159 "unauthenticated.CPE_AUTHENTICATION",
160 "unauthenticated.VES_MEASUREMENT_OUTPUT",
161 "unauthenticated.PNF_UPDATE",
162 "org.onap.dmaap.mr.mirrormakeragent",
168 DCAE: BBS Event Processor (BBS-ep)
169 ==================================
171 Description: `BBS-ep <https://docs.onap.org/projects/onap-dcaegen2/en/frankfurt/sections/services/bbs-event-processor/index.html?highlight=BBS>`_
173 The following BBS event processor blueprint will be used:
175 - `k8s-bbs-event-processor.yaml <https://git.onap.org/dcaegen2/platform/blueprints/plain/blueprints/k8s-bbs-event-processor.yaml?h=frankfurt>`_
178 The BBS-ep deployment procedure:
182 root@onap-nfs:/home/ubuntu# kubectl exec -ti dev-dcae-bootstrap-7599b45c77-czxsx -n onap bash
183 bash-4.2$ cfy install -b bbs-ep -d bbs-ep /blueprints/k8s-bbs-event-processor.yaml
186 IMPORTANT: Make sure that the configuration of BBS-ep in Consul contains the following version for the close loop policy in order to match the version expected by BBS APEX policy:
190 "application.clVersion": "1.0.2"
193 DCAE: RESTCONF Collector
194 ========================
196 Description: `RESTCONF Collector <https://docs.onap.org/projects/onap-dcaegen2/en/frankfurt/sections/services/restconf/index.html>`_
198 The following RESTCONF collector blueprint will be used:
200 - `k8s-restconf.yaml <https://git.onap.org/dcaegen2/platform/blueprints/plain/blueprints/k8s-restconf.yaml?h=frankfurt>`_
203 RESTCONF Collector deployment procedure:
207 root@onap-nfs:/home/ubuntu# kubectl exec -ti dev-dcae-bootstrap-7599b45c77-czxsx -n onap bash
208 bash-4.2$ cfy install -b restconf -d restconf /blueprints/k8s-restconf.yaml
214 Description: `VES Mapper <https://docs.onap.org/projects/onap-dcaegen2/en/frankfurt/sections/services/mapper/index.html>`_
216 The following VES mapper blueprint will be used:
218 - `k8s-ves-mapper.yaml <https://git.onap.org/dcaegen2/platform/blueprints/tree/blueprints/k8s-ves-mapper.yaml?h=frankfurt>`_
221 VES Mapper deployment procedure:
225 root@onap-nfs:/home/ubuntu# kubectl exec -ti dev-dcae-bootstrap-7599b45c77-czxsx -n onap bash
226 bash-4.2$ cfy install -b ves-mapper -d ves-mapper /blueprints/k8s-ves-mapper.yaml
232 Configure the mapping of the VES event domain to the correct DMaaP topic in Consul: ves-statechange --> unauthenticated.CPE_AUTHENTICATION
234 1. Access Consul UI <http://CONSUL_SERVER_UI:30270/ui/#/dc1/services>
236 2. Modify the dcae-ves-collector configuration by adding a new VES domain to DMaaP topic mapping
240 "ves-statechange": {"type": "message_router", "dmaap_info": {"topic_url": "http://message-router:3904/events/unauthenticated.CPE_AUTHENTICATION"}}
244 3. Click on UPDATE in order to apply the new configuration
247 SDNC: BBS DGs (Directed Graphs)
248 ===============================
250 Make sure that the following BBS DGs in the SDNC DGBuilder are in Active state
254 bbs-access-connectivity-vnf-topology-operation-create-huawei
255 bbs-access-connectivity-vnf-topology-operation-delete-huawei
256 bbs-internet-profile-vnf-topology-operation-change-huawei
257 bbs-internet-profile-vnf-topology-operation-common-huawei
258 bbs-internet-profile-vnf-topology-operation-create-huawei
259 bbs-internet-profile-vnf-topology-operation-delete-huawei
260 validate-bbs-vnf-input-parameters
262 DGBuilder URL: https://sdnc.api.simpledemo.onap.org:30203
267 Configure Access SDN M&C IP address in SDNC DG using dgbuilder. For instance:
269 > GENERIC-RESOURCE-API: bbs-access-connectivity-vnf-topology-operation-create-huawei.json
270 > GENERIC-RESOURCE-API: bbs-access-connectivity-vnf-topology-operation-delete-huawei.json
272 1. Export the relevant DG
274 2. Modify the IP address
276 3. Import back the DG and Activate it
278 DGBuilder URL: https://sdnc.api.simpledemo.onap.org:30203
283 Configure Edge SDN M&C IP address in SDNC DG using dgbuilder. For instance:
285 > GENERIC-RESOURCE-API: bbs-access-connectivity-vnf-topology-operation-common-huawei.json
287 1. Export the relevant DG
289 2. Modify the IP address
291 3. Import back the DG and Activate it
293 DGBuilder URL: https://sdnc.api.simpledemo.onap.org:30203
296 Add SSL certificate of the 3rd party controller into the SDNC trust store
297 =========================================================================
301 kubectl exec -ti dev-sdnc-0 -n onap -- bash
303 openssl s_client -connect <IP_ADDRESS_EXT_CTRL>:<PORT>
304 # copy server certificate and paste in /tmp/<CA_CERT_NAME>.crt
305 sudo keytool -importcert -file /tmp/<CA_CERT_NAME>.crt -alias <CA_CERT_NAME>_key -keystore truststore.onap.client.jks -storepass adminadmin
306 keytool -list -keystore truststore.onap.client.jks -storepass adminadmin | grep <CA_CERT_NAME>
309 Policy: BBS APEX policy
310 =======================
312 Deployment procedure of BBS APEX Policy (master, apex-pdp image v2.3+)
314 1. Make Sure APEX PDP is running and in Active state
319 URL: {{POLICY-PAP-URL}}/policy/pap/v1/pdps
321 2. Create the operational control loop APEX policy type
326 URL: {{POLICY-API-URL}}/policy/api/v1/policytypes
327 JSON Payload: https://git.onap.org/integration/usecases/bbs/tree/policy/apex/json/bbs_policytypes.json
329 3. Create BBS APEX policy
334 URL: {{POLICY-API-URL}}/policy/api/v1/policytypes/onap.policies.controlloop.operational.Apex/versions/1.0.0/policies
335 JSON Payload: https://git.onap.org/integration/usecases/bbs/tree/policy/apex/json/bbs_create_policy.json
342 URL: {{POLICY-PAP-URL}}/policy/pap/v1/pdps/policies
343 JSON Payload: https://git.onap.org/integration/usecases/bbs/tree/policy/apex/json/bbs_simple_deploy.json
345 5. Verify the deployment
350 URL: {{POLICY-API-URL}}/policy/api/v1/policytypes/onap.policies.controlloop.operational.Apex/versions/1.0.0/policies/
353 Edge Services: vBNG+AAA+DHCP, Edge SDN M&C
354 ==========================================
356 Installation and setup instructions: `Swisscom Edge SDN M&C and virtual BNG <https://wiki.onap.org/pages/viewpage.action?pageId=63996962>`_
361 Please refer to the following wiki page for further steps related to the BBS service design and instantiation:
363 - `BBS Documentation <https://wiki.onap.org/pages/viewpage.action?pageId=75303137#BBSDocumentation(Frankfurt)-BBSServiceConfiguration>`_
368 - E2E Service deletion workflow does not delete the PNF resource in AAI (`SO-2609 <https://jira.onap.org/browse/SO-2609>`_)
370 .. |image1| image:: files/bbs/BBS_arch_overview.png
372 .. |image2| image:: files/bbs/BBS_system_view.png
374 .. |image3| image:: files/bbs/BBS_dcae-ves-collector_config.png