d2bca11c60a1a4fe3c02dd75d5236da4a5d84607
[integration.git] / docs / docs_BBS.rst
1 .. _docs_bbs:
2
3 BBS (Broadband Service)
4 -----------------------
5
6 Overview
7 ~~~~~~~~
8 The BBS use case proposes using ONAP for the design, provisioning, life-cycle
9 management and assurance of broadband services. BBS focuses on multi-Gigabit
10 Internet Connectivity services based on PON (Passive Optical Network) access
11 technology.
12
13 In Frankfurt release, BBS enables ONAP to
14
15 1. Establish a subscriber's HSIA (High Speed Internet Access) service from an ONT (Optical Network Termination unit) to the Internet drain
16
17    - The HSIA service is designed and deployed using ONAP's design and deployment capabilities
18    - 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.
19
20 2. Detect the change of location for ONT devices (Nomadic ONT devices)
21
22    - PNF (Re-)Registration for an ONT
23
24      - Subscriber association to an ONT via ONAP's External APIs
25      - ONT association with a expected Access UNI (PON port) when a HSIA service is created/deployed for a subscriber
26      - PNF (Re-)Registration using ONAP's PNF registration capabilities
27
28    - Service location modification that is detected by ONAP's analytic and initiated via the closed loop capabilities
29
30      - The closed loop capabilities invoke a HSIA location change service that
31        is orchestrated and controlled using ONAP capabilities and 3rd party controllers
32
33 |image1|
34
35 **Figure 1. Architecture Overview**
36
37 System View
38 ~~~~~~~~~~~
39 BBS relies on key ONAP components such as External API, SO, AAI, SDC, Policy
40 (APEX engine), DCAE (PRH, BBS Event Processor, VES collector, VES mapper,
41 RESTCONF collector) and SDNC
42
43 |image2|
44
45 **Figure 2. System View**
46
47 System Set Up and configuration
48 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
49
50 SO: Custom Workflow Configuration
51 =================================
52
53 ::
54
55   ~/oom/kubernetes# kubectl edit cm dev-so-bpmn-infra-app-configmap
56
57     ## replace "workflow:\n    CreateGenericVNFV1:\n"
58     ## with "workflow:\n    custom:\n        BBS_E2E_Service:\n            sdnc:\n                need: true\n    CreateGenericVNFV1:\n"
59
60   ## Restart the pod
61   ~/oom/kubernetes# kubectl delete po dev-so-so-bpmn-infra-7556d7f6bc-8fthk
62
63
64 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.
65
66 IMPORTANT: make sure vnf_recipe.NF_ROLE matches vnf_resource.MODEL_NAME, and vnf_recipe.VERSION_STR matches vnf_resource.MODEL_VERSION.
67
68 ::
69
70   root@onap-rancher-daily:/home/ubuntu# kubectl exec -ti dev-mariadb-galera-0 sh
71   sh-4.2$ mysql -u root -p
72   MariaDB [(none)]> use catalogdb;
73   MariaDB [catalogdb]> INSERT INTO vnf_recipe (NF_ROLE, ACTION, SERVICE_TYPE, VERSION_STR, DESCRIPTION, ORCHESTRATION_URI, VNF_PARAM_XSD, RECIPE_TIMEOUT)
74   VALUES
75     ("InternetProfile", "createInstance", "NF", "1.0", "create InternetProfile", "/mso/async/services/CreateSDNCNetworkResource", '{"operationType":"AccessConnectivity"}', 180000),
76     ("AccessConnectivity", "createInstance", "NF", "1.0", "create AccessConnectivity", "/mso/async/services/CreateSDNCNetworkResource", '{"operationType":"InternetProfile"}', 180000),
77     ("CPE", "createInstance", "NF", "1.0", "create CPE", "/mso/async/services/HandlePNF", NULL, 180000);
78
79   MariaDB [catalogdb]> select * from vnf_recipe where NF_ROLE IN ('AccessConnectivity','InternetProfile', 'CPE');
80   +-------+--------------------+----------------+--------------+-------------+---------------------------+-----------------------------------------------+----------------------------------------+----------------+---------------------+--------------+
81   | id    | NF_ROLE            | ACTION         | SERVICE_TYPE | VERSION_STR | DESCRIPTION               | ORCHESTRATION_URI                             | VNF_PARAM_XSD                          | RECIPE_TIMEOUT | CREATION_TIMESTAMP  | VF_MODULE_ID |
82   +-------+--------------------+----------------+--------------+-------------+---------------------------+-----------------------------------------------+----------------------------------------+----------------+---------------------+--------------+
83   | 10048 | InternetProfile    | createInstance | NF           | 1.0         | create InternetProfile    | /mso/async/services/CreateSDNCNetworkResource | {"operationType":"InternetProfile"}    |        1800000 | 2020-01-20 17:43:07 | NULL         |
84   | 10051 | AccessConnectivity | createInstance | NF           | 1.0         | create AccessConnectivity | /mso/async/services/CreateSDNCNetworkResource | {"operationType":"AccessConnectivity"} |        1800000 | 2020-01-20 17:43:07 | NULL         |
85   | 10054 | CPE                | createInstance | NF           | 1.0         | create CPE                | /mso/async/services/HandlePNF                 | NULL                                   |        1800000 | 2020-01-20 17:43:07 | NULL         |
86   +-------+--------------------+----------------+--------------+-------------+---------------------------+-----------------------------------------------+----------------------------------------+----------------+---------------------+--------------+
87   3 rows in set (0.00 sec)
88
89
90 DMaaP Message Router
91 ====================
92
93 Create the required topics in DMaaP
94
95 ::
96
97   curl -kX POST \
98     https://mr.api.simpledemo.openecomp.org:30226/topics/create \
99     -H 'Accept: application/json' \
100     -H 'Content-Type: application/json' \
101     -H 'cache-control: no-cache' \
102     -d '{
103       "topicName": "unauthenticated.DCAE_CL_OUTPUT",
104       "topicDescription": "",
105       "partitionCount": "",
106       "replicationCount": "3"
107   }'
108
109   curl -kX POST \
110     https://mr.api.simpledemo.openecomp.org:30226/topics/create \
111     -H 'Accept: application/json' \
112     -H 'Content-Type: application/json' \
113     -H 'cache-control: no-cache' \
114     -d '{
115       "topicName": "unauthenticated.CPE_AUTHENTICATION",
116       "topicDescription": "",
117       "partitionCount": "",
118       "replicationCount": "3"
119   }'
120
121   curl -kX POST \
122     https://mr.api.simpledemo.openecomp.org:30226/topics/create \
123     -H 'Accept: application/json' \
124     -H 'Content-Type: application/json' \
125     -H 'cache-control: no-cache' \
126     -d '{
127       "topicName": "unauthenticated.PNF_READY",
128       "topicDescription": "",
129       "partitionCount": "",
130       "replicationCount": "3"
131   }'
132
133   curl -kX POST \
134     https://mr.api.simpledemo.openecomp.org:30226/topics/create \
135     -H 'Accept: application/json' \
136     -H 'Content-Type: application/json' \
137     -H 'cache-control: no-cache' \
138     -d '{
139       "topicName": "unauthenticated.PNF_UPDATE",
140       "topicDescription": "",
141       "partitionCount": "",
142       "replicationCount": "3"
143   }'
144
145   curl -k 'https://mr.api.simpledemo.openecomp.org:30226/topics'
146
147   {
148       "topics": [
149           "org.onap.dmaap.mr.PNF_REGISTRATION",
150           "unauthenticated.DCAE_CL_OUTPUT",
151           "AAI-EVENT",
152           "SDC-DISTR-STATUS-TOPIC-AUTO",
153           "SDC-DISTR-NOTIF-TOPIC-AUTO",
154           "org.onap.dmaap.mr.PNF_READY",
155           "unauthenticated.PNF_READY",
156           "POLICY-PDP-PAP",
157           "unauthenticated.CPE_AUTHENTICATION",
158           "unauthenticated.VES_MEASUREMENT_OUTPUT",
159           "unauthenticated.PNF_UPDATE",
160           "org.onap.dmaap.mr.mirrormakeragent",
161           "__consumer_offsets"
162       ]
163   }
164
165
166 DCAE: BBS Event Processor (BBS-ep)
167 ==================================
168
169 Description: :doc:`BBS-ep <https://docs.onap.org/en/frankfurt/submodules/dcaegen2.git/docs/sections/services/bbs-event-processor/>`
170
171 The following BBS event processor blueprint will be used:
172
173 - `k8s-bbs-event-processor.yaml <https://git.onap.org/dcaegen2/platform/blueprints/plain/blueprints/k8s-bbs-event-processor.yaml?h=frankfurt>`_
174
175
176 The BBS-ep deployment procedure:
177
178 ::
179
180   root@onap-nfs:/home/ubuntu# kubectl exec -ti dev-dcae-bootstrap-7599b45c77-czxsx -n onap bash
181   bash-4.2$ cfy install -b bbs-ep -d bbs-ep /blueprints/k8s-bbs-event-processor.yaml
182
183
184 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:
185
186 ::
187
188   "application.clVersion": "1.0.2"
189
190
191 DCAE: RESTCONF Collector
192 ========================
193
194 Description: :doc:`RESTCONF Collector <https://docs.onap.org/en/frankfurt/submodules/dcaegen2.git/docs/sections/services/restconf/index.html>`
195
196 The following RESTCONF collector blueprint will be used:
197
198 - `k8s-restconf.yaml <https://git.onap.org/dcaegen2/platform/blueprints/plain/blueprints/k8s-restconf.yaml?h=frankfurt>`_
199
200
201 RESTCONF Collector deployment procedure:
202
203 ::
204
205   root@onap-nfs:/home/ubuntu# kubectl exec -ti dev-dcae-bootstrap-7599b45c77-czxsx -n onap bash
206   bash-4.2$ cfy install -b restconf -d restconf /blueprints/k8s-restconf.yaml
207
208
209 DCAE: VES mapper
210 ================
211
212 Description: :doc:`VES Mapper <https://docs.onap.org/en/frankfurt/submodules/dcaegen2.git/docs/sections/services/mapper/>`
213
214 The following VES mapper blueprint will be used:
215
216 - `k8s-ves-mapper.yaml <https://git.onap.org/dcaegen2/platform/blueprints/tree/blueprints/k8s-ves-mapper.yaml?h=frankfurt>`_
217
218
219 VES Mapper deployment procedure:
220
221 ::
222
223   root@onap-nfs:/home/ubuntu# kubectl exec -ti dev-dcae-bootstrap-7599b45c77-czxsx -n onap bash
224   bash-4.2$ cfy install -b ves-mapper -d ves-mapper /blueprints/k8s-ves-mapper.yaml
225
226
227 DCAE: VES collector
228 ===================
229
230 Configure the mapping of the VES event domain to the correct DMaaP topic in Consul: ves-statechange --> unauthenticated.CPE_AUTHENTICATION
231
232 1. Access Consul UI <http://CONSUL_SERVER_UI:30270/ui/#/dc1/services>
233
234 2. Modify the dcae-ves-collector configuration by adding a new VES domain to DMaaP topic mapping
235
236 ::
237
238   "ves-statechange": {"type": "message_router", "dmaap_info": {"topic_url": "http://message-router:3904/events/unauthenticated.CPE_AUTHENTICATION"}}
239
240 |image3|
241
242 3. Click on UPDATE in order to apply the new configuration
243
244
245 SDNC: BBS DGs (Directed Graphs)
246 ===============================
247
248 Make sure that the following BBS DGs in the SDNC DGBuilder are in Active state
249
250 ::
251
252   bbs-access-connectivity-vnf-topology-operation-create-huawei
253   bbs-access-connectivity-vnf-topology-operation-delete-huawei
254   bbs-internet-profile-vnf-topology-operation-change-huawei
255   bbs-internet-profile-vnf-topology-operation-common-huawei
256   bbs-internet-profile-vnf-topology-operation-create-huawei
257   bbs-internet-profile-vnf-topology-operation-delete-huawei
258   validate-bbs-vnf-input-parameters
259
260 DGBuilder URL: https://sdnc.api.simpledemo.onap.org:30203
261
262
263 Access SDN M&C DG
264 =================
265 Configure Access SDN M&C IP address in SDNC DG using dgbuilder. For instance:
266
267 > GENERIC-RESOURCE-API: bbs-access-connectivity-vnf-topology-operation-create-huawei.json
268 > GENERIC-RESOURCE-API: bbs-access-connectivity-vnf-topology-operation-delete-huawei.json
269
270 1. Export the relevant DG
271
272 2. Modify the IP address
273
274 3. Import back the DG and Activate it
275
276 DGBuilder URL: https://sdnc.api.simpledemo.onap.org:30203
277
278
279 Edge SDN M&C DG
280 ===============
281 Configure Edge SDN M&C IP address in SDNC DG using dgbuilder. For instance:
282
283 > GENERIC-RESOURCE-API: bbs-access-connectivity-vnf-topology-operation-common-huawei.json
284
285 1. Export the relevant DG
286
287 2. Modify the IP address
288
289 3. Import back the DG and Activate it
290
291 DGBuilder URL: https://sdnc.api.simpledemo.onap.org:30203
292
293
294 Add SSL certificate of the 3rd party controller into the SDNC trust store
295 =========================================================================
296
297 ::
298
299   kubectl exec -ti dev-sdnc-0 -n onap -- bash
300
301   openssl s_client -connect <IP_ADDRESS_EXT_CTRL>:<PORT>
302   # copy server certificate and paste in /tmp/<CA_CERT_NAME>.crt
303   sudo keytool -importcert -file /tmp/<CA_CERT_NAME>.crt -alias <CA_CERT_NAME>_key -keystore truststore.onap.client.jks -storepass adminadmin
304   keytool -list -keystore truststore.onap.client.jks -storepass adminadmin | grep <CA_CERT_NAME>
305
306
307 Policy: BBS APEX policy
308 =======================
309
310 Deployment procedure of BBS APEX Policy (master, apex-pdp image v2.3+)
311
312 1. Make Sure APEX PDP is running and in Active state
313
314 ::
315
316   API:  GET
317   URL: {{POLICY-PAP-URL}}/policy/pap/v1/pdps
318
319 2. Create the operational control loop APEX policy type
320
321 ::
322
323   API: POST
324   URL: {{POLICY-API-URL}}/policy/api/v1/policytypes
325   JSON Payload: https://git.onap.org/integration/usecases/bbs/tree/policy/apex/json/bbs_policytypes.json
326
327 3. Create BBS APEX policy
328
329 ::
330
331   API: POST
332   URL: {{POLICY-API-URL}}/policy/api/v1/policytypes/onap.policies.controlloop.operational.Apex/versions/1.0.0/policies
333   JSON Payload: https://git.onap.org/integration/usecases/bbs/tree/policy/apex/json/bbs_create_policy.json
334
335 4. Deploy BBS policy
336
337 ::
338
339   API: POST
340   URL: {{POLICY-PAP-URL}}/policy/pap/v1/pdps/policies
341   JSON Payload: https://git.onap.org/integration/usecases/bbs/tree/policy/apex/json/bbs_simple_deploy.json
342
343 5. Verify the deployment
344
345 ::
346
347   API: GET
348   URL: {{POLICY-API-URL}}/policy/api/v1/policytypes/onap.policies.controlloop.operational.Apex/versions/1.0.0/policies/
349
350
351 Edge Services: vBNG+AAA+DHCP, Edge SDN M&C
352 ==========================================
353
354 Installation and setup instructions: `Swisscom Edge SDN M&C and virtual BNG <https://wiki.onap.org/pages/viewpage.action?pageId=63996962>`_
355
356 References
357 ==========
358
359 Please refer to the following wiki page for further steps related to the BBS service design and instantiation:
360
361 - `BBS Documentation <https://wiki.onap.org/pages/viewpage.action?pageId=75303137#BBSDocumentation(Frankfurt)-BBSServiceConfiguration>`_
362
363 Known Issues
364 ------------
365
366 - E2E Service deletion workflow does not delete the PNF resource in AAI (`SO-2609 <https://jira.onap.org/browse/SO-2609>`_)
367
368 .. |image1| image:: files/bbs/BBS_arch_overview.png
369    :width: 6.5in
370 .. |image2| image:: files/bbs/BBS_system_view.png
371    :width: 6.5in
372 .. |image3| image:: files/bbs/BBS_dcae-ves-collector_config.png
373    :width: 6.5in