WIP: update CI documentation
[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-so-bpmn-infra-app-configmap
56
57     mso:
58     ...
59          oof:
60            auth: test:testpwd
61            callbackEndpoint: http://so-bpmn-infra.onap:8081/mso/WorkflowMessage
62            endpoint: https://oof-osdf.onap:8698/api/oof/v1/placement
63            timeout: PT30M
64          workflow:
65   +        custom:
66   +          BBS_E2E_Service:
67   +            sdnc:
68   +              need: true
69   +            resource:
70   +              sequence: VnfVirtualLink,CPE,AccessConnectivity,InternetProfile,PonUni,OltNni,OntNni
71            CreateGenericVNFV1:
72              aai:
73                volume-group:
74                  uri: /aai/v6/cloud-infrastructure/volume-groups/volume-group
75            default:
76              aai:
77      ...
78
79   ## Restart the pod
80   ~/oom/kubernetes# kubectl delete po dev-so-so-bpmn-infra-7556d7f6bc-8fthk
81
82
83 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.
84
85 IMPORTANT: make sure vnf_recipe.NF_ROLE matches vnf_resource.MODEL_NAME, and vnf_recipe.VERSION_STR matches vnf_resource.MODEL_VERSION.
86
87 ::
88
89   root@onap-rancher-daily:/home/ubuntu# kubectl exec -ti dev-mariadb-galera-mariadb-galera-0 sh
90   sh-4.2$ mysql -u root -p
91   MariaDB [(none)]> use catalogdb;
92   MariaDB [catalogdb]> INSERT INTO vnf_recipe (NF_ROLE, ACTION, SERVICE_TYPE, VERSION_STR, DESCRIPTION, ORCHESTRATION_URI, VNF_PARAM_XSD, RECIPE_TIMEOUT)
93   VALUES
94     ("InternetProfile", "createInstance", "NF", "1.0", "create InternetProfile", "/mso/async/services/CreateSDNCNetworkResource", '{"operationType":"AccessConnectivity"}', 180000),
95     ("AccessConnectivity", "createInstance", "NF", "1.0", "create AccessConnectivity", "/mso/async/services/CreateSDNCNetworkResource", '{"operationType":"InternetProfile"}', 180000),
96     ("CPE", "createInstance", "NF", "1.0", "create CPE", "/mso/async/services/HandlePNF", NULL, 180000);
97
98   MariaDB [catalogdb]> select * from vnf_recipe where NF_ROLE IN ('AccessConnectivity','InternetProfile', 'CPE');
99   +-------+--------------------+----------------+--------------+-------------+---------------------------+-----------------------------------------------+----------------------------------------+----------------+---------------------+--------------+
100   | id    | NF_ROLE            | ACTION         | SERVICE_TYPE | VERSION_STR | DESCRIPTION               | ORCHESTRATION_URI                             | VNF_PARAM_XSD                          | RECIPE_TIMEOUT | CREATION_TIMESTAMP  | VF_MODULE_ID |
101   +-------+--------------------+----------------+--------------+-------------+---------------------------+-----------------------------------------------+----------------------------------------+----------------+---------------------+--------------+
102   | 10048 | InternetProfile    | createInstance | NF           | 1.0         | create InternetProfile    | /mso/async/services/CreateSDNCNetworkResource | {"operationType":"InternetProfile"}    |        1800000 | 2020-01-20 17:43:07 | NULL         |
103   | 10051 | AccessConnectivity | createInstance | NF           | 1.0         | create AccessConnectivity | /mso/async/services/CreateSDNCNetworkResource | {"operationType":"AccessConnectivity"} |        1800000 | 2020-01-20 17:43:07 | NULL         |
104   | 10054 | CPE                | createInstance | NF           | 1.0         | create CPE                | /mso/async/services/HandlePNF                 | NULL                                   |        1800000 | 2020-01-20 17:43:07 | NULL         |
105   +-------+--------------------+----------------+--------------+-------------+---------------------------+-----------------------------------------------+----------------------------------------+----------------+---------------------+--------------+
106   3 rows in set (0.00 sec)
107
108
109 DMaaP Message Router
110 ====================
111
112 Create the required topics in DMaaP
113
114 ::
115
116   curl -X POST \
117     http://mr.api.simpledemo.openecomp.org:30227/topics/create \
118     -H 'Accept: application/json' \
119     -H 'Content-Type: application/json' \
120     -H 'cache-control: no-cache' \
121     -d '{
122       "topicName": "unauthenticated.DCAE_CL_OUTPUT",
123       "topicDescription": "",
124       "partitionCount": "",
125       "replicationCount": "3"
126   }'
127
128   curl -X POST \
129     http://mr.api.simpledemo.openecomp.org:30227/topics/create \
130     -H 'Accept: application/json' \
131     -H 'Content-Type: application/json' \
132     -H 'cache-control: no-cache' \
133     -d '{
134       "topicName": "unauthenticated.CPE_AUTHENTICATION",
135       "topicDescription": "",
136       "partitionCount": "",
137       "replicationCount": "3"
138   }'
139
140   curl -X POST \
141     http://mr.api.simpledemo.openecomp.org:30227/topics/create \
142     -H 'Accept: application/json' \
143     -H 'Content-Type: application/json' \
144     -H 'cache-control: no-cache' \
145     -d '{
146       "topicName": "unauthenticated.PNF_READY",
147       "topicDescription": "",
148       "partitionCount": "",
149       "replicationCount": "3"
150   }'
151
152   curl -X POST \
153     http://mr.api.simpledemo.openecomp.org:30227/topics/create \
154     -H 'Accept: application/json' \
155     -H 'Content-Type: application/json' \
156     -H 'cache-control: no-cache' \
157     -d '{
158       "topicName": "unauthenticated.PNF_UPDATE",
159       "topicDescription": "",
160       "partitionCount": "",
161       "replicationCount": "3"
162   }'
163
164 DCAE: BBS Event Processor (BBS-ep)
165 ==================================
166
167 Description: :doc:`BBS-ep <../../dcaegen2.git/docs/sections/services/bbs-event-processor/index.rst>`_
168
169 The following BBS event processor blueprints will be used:
170 - `k8s-bbs-event-processor.yaml <https://git.onap.org/dcaegen2/services/plain/components/bbs-event-processor/dpo/blueprints/k8s-bbs-event-processor.yaml-template?h=frankfurt>`_
171 - `bbs-event-processor-input.yaml <https://git.onap.org/dcaegen2/services/plain/components/bbs-event-processor/dpo/blueprints/bbs-event-processor-input.yaml?h=frankfurt>`_
172
173 The BBS-ep deployment procedure:
174
175 ::
176
177   ~/oom/kubernetes# kubectl exec -ti dev-dcaegen2-dcae-bootstrap-85f664d489-54pmt bash
178
179   [root@dev-dcaegen2-dcae-bootstrap-85f664d489-54pmt /]# cfy blueprints validate /blueprints/k8s-bbs-event-processor.yaml
180   Validating blueprint: /blueprints/k8s-bbs-event-processor.yaml-template
181   Blueprint validated successfully
182
183   [root@dev-dcaegen2-dcae-bootstrap-85f664d489-54pmt /]# cfy blueprints upload -b bbs-ep /blueprints/k8s-bbs-event-processor.yaml
184   Uploading blueprint /blueprints/k8s-bbs-event-processor.yaml...
185   k8s-bbs-event-pro... |################################################| 100.0%
186   Blueprint uploaded. The blueprint's id is bbs-ep
187   [root@dev-dcaegen2-dcae-bootstrap-85f664d489-54pmt /]# cfy deployments create -b bbs-ep -i /bbs-event-processor-input.yaml bbs-ep
188   Creating new deployment from blueprint bbs-ep...
189   Deployment created. The deployment's id is bbs-ep
190
191   [root@dev-dcaegen2-dcae-bootstrap-85f664d489-54pmt /]# cfy executions start -d bbs-ep install
192   Executing workflow install on deployment bbs-ep [timeout=900 seconds]
193   2019-05-01 11:35:32.007  CFY <bbs-ep> Starting 'install' workflow execution
194   2019-05-01 11:35:32.587  CFY <bbs-ep> [bbs-event-processor_yd5ucp] Creating node instance
195   2019-05-01 11:35:32.587  CFY <bbs-ep> [bbs-event-processor_yd5ucp.create] Sending task 'k8splugin.create_for_components'
196   2019-05-01 11:35:33.953  LOG <bbs-ep> [bbs-event-processor_yd5ucp.create] INFO: Added config for s4d51b24f52264857b7ef520be9efc46b-bbs-event-processor
197   2019-05-01 11:35:33.953  LOG <bbs-ep> [bbs-event-processor_yd5ucp.create] INFO: Added config for s4d51b24f52264857b7ef520be9efc46b-bbs-event-processor
198   2019-05-01 11:35:34.596  CFY <bbs-ep> [bbs-event-processor_yd5ucp.create] Task succeeded 'k8splugin.create_for_components'
199   2019-05-01 11:35:34.596  CFY <bbs-ep> [bbs-event-processor_yd5ucp] Node instance created
200   2019-05-01 11:35:34.596  CFY <bbs-ep> [bbs-event-processor_yd5ucp] Configuring node instance: nothing to do
201   2019-05-01 11:35:35.227  CFY <bbs-ep> [bbs-event-processor_yd5ucp] Starting node instance
202   2019-05-01 11:35:35.227  CFY <bbs-ep> [bbs-event-processor_yd5ucp.start] Sending task 'k8splugin.create_and_start_container_for_components'
203   2019-05-01 11:35:36.818  LOG <bbs-ep> [bbs-event-processor_yd5ucp.start] INFO: Passing k8sconfig: {'tls': {u'cert_path': u'/opt/tls/shared', u'image': u'nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tls-init-container:1.0.3-STAGING-latest'}, 'filebeat': {u'config_map': u'dcae-filebeat-configmap', u'config_path': u'/usr/share/filebeat/filebeat.yml', u'log_path': u'/var/log/onap', u'image': u'docker.elastic.co/beats/filebeat:5.5.0', u'data_path': u'/usr/share/filebeat/data', u'config_subpath': u'filebeat.yml'}, 'consul_dns_name': u'consul-server.onap', 'image_pull_secrets': [u'onap-docker-registry-key'], 'namespace': u'onap', 'consul_host': 'consul-server:8500', 'default_k8s_location': u'central'}
204   2019-05-01 11:35:36.818  LOG <bbs-ep> [bbs-event-processor_yd5ucp.start] INFO: k8s deployment initiated successfully for s4d51b24f52264857b7ef520be9efc46b-bbs-event-processor: {'services': ['s4d51b24f52264857b7ef520be9efc46b-bbs-event-processor', 'xs4d51b24f52264857b7ef520be9efc46b-bbs-event-processor'], 'namespace': u'onap', 'location': u'central', 'deployment': 'dep-s4d51b24f52264857b7ef520be9efc46b-bbs-event-processor'}
205   2019-05-01 11:35:36.818  LOG <bbs-ep> [bbs-event-processor_yd5ucp.start] INFO: Waiting up to 1800 secs for s4d51b24f52264857b7ef520be9efc46b-bbs-event-processor to become ready
206   2019-05-01 11:36:58.376  LOG <bbs-ep> [bbs-event-processor_yd5ucp.start] INFO: Done starting: s4d51b24f52264857b7ef520be9efc46b-bbs-event-processor
207   2019-05-01 11:36:57.873  LOG <bbs-ep> [bbs-event-processor_yd5ucp.start] INFO: k8s deployment is ready for: s4d51b24f52264857b7ef520be9efc46b-bbs-event-processor
208   2019-05-01 11:36:59.119  CFY <bbs-ep> [bbs-event-processor_yd5ucp.start] Task succeeded 'k8splugin.create_and_start_container_for_components'
209   2019-05-01 11:36:59.119  CFY <bbs-ep> [bbs-event-processor_yd5ucp] Node instance started
210   2019-05-01 11:36:59.119  CFY <bbs-ep> 'install' workflow execution succeeded
211   Finished executing workflow install on deployment bbs-ep
212   * Run 'cfy events list -e 7f285182-4f85-478c-95f3-b8b6970f7c8d' to retrieve the execution's events/logs
213
214 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:
215
216 ::
217
218   "application.clVersion": "1.0.2"
219
220 DCAE: RESTCONF Collector
221 ========================
222
223 Description: :doc:`RESTCONF Collector <../../dcaegen2.git/docs/sections/services/restconf/index.rst>`_
224
225 The following RESTCONF collector blueprints will be used:
226 - `k8s-rcc-policy.yaml <https://git.onap.org/dcaegen2/collectors/restconf/plain/dpo/blueprints/k8s-rcc-policy.yaml-template?h=frankfurt>`_
227
228 RESTCONF Collector deployment procedure:
229
230 ::
231
232   [root@dev-dcaegen2-dcae-bootstrap-779767c49c-7cvdw /]# cfy blueprints validate blueprints/k8s-rcc-policy.yaml
233   Validating blueprint: blueprints/k8s-rcc-policy.yaml
234   Blueprint validated successfully
235
236   [root@dev-dcaegen2-dcae-bootstrap-779767c49c-7cvdw /]# cfy blueprints upload -b restconfcollector /blueprints/k8s-rcc-policy.yaml
237   Uploading blueprint /blueprints/k8s-rcc-policy.yaml...
238    k8s-rcc-policy.yaml |#################################################| 100.0%
239   Blueprint uploaded. The blueprint's id is restconfcollector
240
241   [root@dev-dcaegen2-dcae-bootstrap-779767c49c-7cvdw /]# cfy deployments create -b restconfcollector
242   Creating new deployment from blueprint restconfcollector...
243   Deployment created. The deployment's id is restconfcollector
244
245   [root@dev-dcaegen2-dcae-bootstrap-779767c49c-7cvdw /]# cfy executions start -d restconfcollector install
246   Executing workflow install on deployment restconfcollector [timeout=900 seconds]
247   2020-01-13 15:12:52.119  CFY <restconfcollector> Starting 'install' workflow execution
248   2020-01-13 15:12:52.701  CFY <restconfcollector> [rcc_k8s_8qm5me] Creating node instance
249   2020-01-13 15:12:52.701  CFY <restconfcollector> [rcc_k8s_8qm5me.create] Sending task 'k8splugin.create_for_platforms'
250   2020-01-13 15:12:55.168  LOG <restconfcollector> [rcc_k8s_8qm5me.create] INFO: Added config for dcaegen2-collectors-rcc
251   2020-01-13 15:12:55.747  LOG <restconfcollector> [rcc_k8s_8qm5me.create] INFO: Done setting up: dcaegen2-collectors-rcc
252   2020-01-13 15:12:55.747  CFY <restconfcollector> [rcc_k8s_8qm5me.create] Task succeeded 'k8splugin.create_for_platforms'
253   2020-01-13 15:12:55.747  CFY <restconfcollector> [rcc_k8s_8qm5me] Node instance created
254   2020-01-13 15:12:56.341  CFY <restconfcollector> [rcc_k8s_8qm5me] Configuring node instance: nothing to do
255   2020-01-13 15:12:56.341  CFY <restconfcollector> [rcc_k8s_8qm5me] Starting node instance
256   2020-01-13 15:12:56.341  CFY <restconfcollector> [rcc_k8s_8qm5me.start] Sending task 'k8splugin.create_and_start_container_for_platforms'
257   2020-01-13 15:12:57.559  LOG <restconfcollector> [rcc_k8s_8qm5me.start] INFO: Starting k8s deployment for dcaegen2-collectors-rcc, image: nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.restconfcollector:1.1.1, env: {'CONSUL_HOST': u'consul-server.onap.svc.cluster.local', u'DMAAPHOST': u'message-router.onap.svc.cluster.local', 'CONFIG_BINDING_SERVICE': u'config_binding_service', u'CBS_HOST': u'config-binding-service.dcae.svc.cluster.local', u'DMAAPPORT': u'3904', u'CBS_PORT': u'10000', u'CONSUL_PORT': u'8500', u'DMAAPPUBTOPIC': u'unauthenticated.DCAE_RCC_OUTPUT'}, kwargs: {'readiness': {u'endpoint': u'/healthcheck', u'type': u'http', u'timeout': u'1s', u'interval': u'15s'}, 'tls_info': {}, 'replicas': 1, u'envs': {u'CONSUL_HOST': u'consul-server.onap.svc.cluster.local', u'DMAAPHOST': u'message-router.onap.svc.cluster.local', u'CONFIG_BINDING_SERVICE': u'config_binding_service', u'CBS_HOST': u'config-binding-service.dcae.svc.cluster.local', u'DMAAPPORT': u'3904', u'CBS_PORT': u'10000', u'CONSUL_PORT': u'8500', u'DMAAPPUBTOPIC': u'unauthenticated.DCAE_RCC_OUTPUT'}, 'labels': {'cfydeployment': u'restconfcollector', 'cfynodeinstance': u'rcc_k8s_8qm5me', 'cfynode': u'rcc_k8s'}, 'ctx': <cloudify.context.CloudifyContext object at 0x7fb63e5872d0>, 'always_pull_image': False, 'resource_config': {}, 'log_info': {u'log_directory': u'/opt/app/RCCollector/logs'}, u'ports': [u'8080:30416'], 'k8s_location': u'central'}
258   2020-01-13 15:12:58.275  LOG <restconfcollector> [rcc_k8s_8qm5me.start] INFO: Passing k8sconfig: {'tls': {u'cert_path': u'/opt/tls/shared', u'image': u'nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tls-init-container:1.0.3', u'ca_cert_configmap': u'dev-dcaegen2-dcae-bootstrap-dcae-cacert', u'component_ca_cert_path': u'/opt/dcae/cacert/cacert.pem'}, 'filebeat': {u'config_map': u'dcae-filebeat-configmap', u'config_path': u'/usr/share/filebeat/filebeat.yml', u'log_path': u'/var/log/onap', u'image': u'docker.elastic.co/beats/filebeat:5.5.0', u'data_path': u'/usr/share/filebeat/data', u'config_subpath': u'filebeat.yml'}, 'consul_dns_name': u'consul-server.onap', 'image_pull_secrets': [u'onap-docker-registry-key'], 'namespace': u'onap', 'consul_host': 'consul-server:8500', 'default_k8s_location': u'central'}
259   2020-01-13 15:12:58.275  LOG <restconfcollector> [rcc_k8s_8qm5me.start] INFO: k8s deployment initiated successfully for dcaegen2-collectors-rcc: {'services': ['dcaegen2-collectors-rcc', 'xdcaegen2-collectors-rcc'], 'namespace': u'onap', 'location': u'central', 'deployment': 'dep-dcaegen2-collectors-rcc'}
260   2020-01-13 15:12:58.275  LOG <restconfcollector> [rcc_k8s_8qm5me.start] INFO: Waiting up to 1800 secs for dcaegen2-collectors-rcc to become ready
261   2020-01-13 15:13:29.970  LOG <restconfcollector> [rcc_k8s_8qm5me.start] INFO: k8s deployment is ready for: dcaegen2-collectors-rcc
262   2020-01-13 15:13:30.550  CFY <restconfcollector> [rcc_k8s_8qm5me.start] Task succeeded 'k8splugin.create_and_start_container_for_platforms'
263   2020-01-13 15:13:30.550  CFY <restconfcollector> [rcc_k8s_8qm5me] Node instance started
264   2020-01-13 15:13:31.265  CFY <restconfcollector> 'install' workflow execution succeeded
265   Finished executing workflow install on deployment restconfcollector
266   * Run 'cfy events list -e 2ea4f906-536b-48b1-aa34-dd6b4baed255' to retrieve the execution's events/logs
267
268 DCAE: VES mapper
269 ================
270
271 Installation instructions: :doc:`VES Mapper <../../dcaegen2.git/docs/sections/services/mapper/index.rst>`_
272
273 The following VES mapper blueprints will be used:
274 - `k8s-vesmapper.yaml <https://gerrit.onap.org/r/gitweb?p=dcaegen2/services/mapper.git;a=blob_plain;f=UniversalVesAdapter/dpo/blueprints/k8s-vesmapper.yaml-template.yaml>`_
275
276 IMPORTANT: Set the image to nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.mapper.vesadapter.universalvesadaptor:1.0.0 in the blueprint
277
278 DCAE: VES collector
279 ===================
280
281 Configure the mapping of the VES event domain to the correct DMaaP topic in Consul: ves-statechange --> unauthenticated.CPE_AUTHENTICATION
282
283 1. Access Consul UI: `<http://<consul_server_ui>:30270/ui/#/dc1/services>`_
284
285 2. Modify the dcae-ves-collector configuration by adding a new VES domain to DMaaP topic mapping
286
287 ::
288
289   "ves-statechange": {"type": "message_router", "dmaap_info": {"topic_url": "http://message-router:3904/events/unauthenticated.CPE_AUTHENTICATION"}}
290
291 3. Click on UPDATE in order to apply the new configuration
292
293
294 SDNC: BBS DGs (Directed Graphs)
295 ===============================
296
297 Make sure that the following BBS DGs in the SDNC DGBuilder are in Active state
298
299 ::
300
301   bbs-access-connectivity-vnf-topology-operation-create-huawei
302   bbs-access-connectivity-vnf-topology-operation-delete-huawei
303   bbs-internet-profile-vnf-topology-operation-change-huawei
304   bbs-internet-profile-vnf-topology-operation-common-huawei
305   bbs-internet-profile-vnf-topology-operation-create-huawei
306   bbs-internet-profile-vnf-topology-operation-delete-huawei
307   validate-bbs-vnf-input-parameters
308
309 DGBuilder URL: `<https://sdnc.api.simpledemo.onap.org:30203>`_
310
311 Access SDN M&C DG
312 =================
313 Configure Access SDN M&C IP address in SDNC DG using dgbuilder. For instance:
314
315 > GENERIC-RESOURCE-API: bbs-access-connectivity-vnf-topology-operation-create-huawei.json
316 > GENERIC-RESOURCE-API: bbs-access-connectivity-vnf-topology-operation-delete-huawei.json
317
318 1. Export the relevant DG
319
320 2. Modify the IP address
321
322 3. Import back the DG and Activate it
323
324 DGBuilder URL: `<https://sdnc.api.simpledemo.onap.org:30203>`_
325
326 Edge SDN M&C DG
327 ===============
328 Configure Edge SDN M&C IP address in SDNC DG using dgbuilder. For instance:
329
330 > GENERIC-RESOURCE-API: bbs-access-connectivity-vnf-topology-operation-common-huawei.json
331
332 1. Export the relevant DG
333
334 2. Modify the IP address
335
336 3. Import back the DG and Activate it
337
338 DGBuilder URL: `<https://sdnc.api.simpledemo.onap.org:30203>`_
339
340 Add SSL certificate of the 3rd party controller into the SDNC trust store
341 =========================================================================
342
343 ::
344
345   kubectl exec -ti dev-sdnc-sdnc-0 -n onap -- bash
346
347   openssl s_client -connect <IP_ADDRESS_EXT_CTRL>:<PORT>
348   # copy server certificate and paste in /tmp/<CA_CERT_NAME>.crt
349   sudo keytool -importcert -file /tmp/<CA_CERT_NAME>.crt -alias <CA_CERT_NAME>_key -keystore truststore.onap.client.jks -storepass adminadmin
350   keytool -list -keystore truststore.onap.client.jks -storepass adminadmin | grep <CA_CERT_NAME>
351
352
353 Policy: BBS APEX policy
354 =======================
355
356 Deployment procedure of BBS APEX Policy (master, apex-pdp image v2.3+)
357
358 1. Make Sure APEX PDP is running and in Active state
359
360 ::
361
362   API:  GET
363   URL: {{POLICY-PAP-URL}}/policy/pap/v1/pdps
364
365 2. Create the operational control loop APEX policy type
366
367 ::
368
369   API: POST
370   URL: {{POLICY-API-URL}}/policy/api/v1/policytypes
371
372 3. Create BBS APEX policy
373
374 ::
375
376   API: POST
377   URL: {{POLICY-API-URL}}/policy/api/v1/policytypes/onap.policies.controlloop.operational.Apex/versions/1.0.0/policies
378
379 4. Deploy BBS policy
380
381 ::
382
383   API: POST
384   URL: {{POLICY-PAP-URL}}/policy/pap/v1/pdps/deployments/batch
385
386 5. Verify the deployment
387
388 ::
389
390   API: GET
391   URL: {{POLICY-API-URL}}/policy/api/v1/policytypes/onap.policies.controlloop.operational.Apex/versions/1.0.0/policies/
392
393 Edge Services: vBNG+AAA+DHCP, Edge SDN M&C
394 ==========================================
395
396 Installation and setup instructions: `Swisscom Edge SDN M&C and virtual BNG <https://wiki.onap.org/pages/viewpage.action?pageId=63996962>`_
397
398 References
399 ==========
400
401 Please refer to the following wiki page for further steps related to the BBS service design and instantiation:
402
403 - `BBS Documentation <https://wiki.onap.org/pages/viewpage.action?pageId=75303137#BBSDocumentation(Frankfurt)-BBSServiceConfiguration>`_
404
405 Known Issues
406 ------------
407
408 - E2E Service deletion workflow does not delete the PNF resource in AAI (`SO-2609 <https://jira.onap.org/browse/SO-2609>`_)
409
410 .. |image1| image:: files/bbs/BBS_arch_overview.png
411    :width: 6.5in
412 .. |image2| image:: files/bbs/BBS_system_view.png
413    :width: 6.5in