3 BBS (Broadband Service)
4 -----------------------
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
13 In Frankfurt release, BBS enables ONAP to
15 1. Establish a subscriber's HSIA (High Speed Internet Access) service from an ONT (Optical Network Termination unit) to the Internet drain
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.
20 2. Detect the change of location for ONT devices (Nomadic ONT devices)
22 - PNF (Re-)Registration for an ONT
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
28 - Service location modification that is detected by ONAP's analytic and initiated via the closed loop capabilities
30 - The closed loop capabilities invoke a HSIA location change service that
31 is orchestrated and controlled using ONAP capabilities and 3rd party controllers
35 **Figure 1. Architecture Overview**
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
45 **Figure 2. System View**
47 System Set Up and configuration
48 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
50 SO: Custom Workflow Configuration
51 =================================
55 ~/oom/kubernetes# kubectl edit cm dev-so-bpmn-infra-app-configmap
57 ## replace "workflow:\n CreateGenericVNFV1:\n"
58 ## with "workflow:\n custom:\n BBS_E2E_Service:\n sdnc:\n need: true\n CreateGenericVNFV1:\n"
61 ~/oom/kubernetes# kubectl delete po dev-so-so-bpmn-infra-7556d7f6bc-8fthk
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.
66 IMPORTANT: make sure vnf_recipe.NF_ROLE matches vnf_resource.MODEL_NAME, and vnf_recipe.VERSION_STR matches vnf_resource.MODEL_VERSION.
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)
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);
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)
93 Create the required topics in DMaaP
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' \
103 "topicName": "unauthenticated.DCAE_CL_OUTPUT",
104 "topicDescription": "",
105 "partitionCount": "",
106 "replicationCount": "3"
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' \
115 "topicName": "unauthenticated.CPE_AUTHENTICATION",
116 "topicDescription": "",
117 "partitionCount": "",
118 "replicationCount": "3"
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' \
127 "topicName": "unauthenticated.PNF_READY",
128 "topicDescription": "",
129 "partitionCount": "",
130 "replicationCount": "3"
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' \
139 "topicName": "unauthenticated.PNF_UPDATE",
140 "topicDescription": "",
141 "partitionCount": "",
142 "replicationCount": "3"
145 curl -k 'https://mr.api.simpledemo.openecomp.org:30226/topics'
149 "org.onap.dmaap.mr.PNF_REGISTRATION",
150 "unauthenticated.DCAE_CL_OUTPUT",
152 "SDC-DISTR-STATUS-TOPIC-AUTO",
153 "SDC-DISTR-NOTIF-TOPIC-AUTO",
154 "org.onap.dmaap.mr.PNF_READY",
155 "unauthenticated.PNF_READY",
157 "unauthenticated.CPE_AUTHENTICATION",
158 "unauthenticated.VES_MEASUREMENT_OUTPUT",
159 "unauthenticated.PNF_UPDATE",
160 "org.onap.dmaap.mr.mirrormakeragent",
166 DCAE: BBS Event Processor (BBS-ep)
167 ==================================
169 Description: :doc:`BBS-ep <https://docs.onap.org/en/frankfurt/submodules/dcaegen2.git/docs/sections/services/bbs-event-processor/>`
171 The following BBS event processor blueprint will be used:
173 - `k8s-bbs-event-processor.yaml <https://git.onap.org/dcaegen2/platform/blueprints/plain/blueprints/k8s-bbs-event-processor.yaml?h=frankfurt>`_
176 The BBS-ep deployment procedure:
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
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:
188 "application.clVersion": "1.0.2"
191 DCAE: RESTCONF Collector
192 ========================
194 Description: :doc:`RESTCONF Collector <https://docs.onap.org/en/frankfurt/submodules/dcaegen2.git/docs/sections/services/restconf/index.html>`
196 The following RESTCONF collector blueprint will be used:
198 - `k8s-restconf.yaml <https://git.onap.org/dcaegen2/platform/blueprints/plain/blueprints/k8s-restconf.yaml?h=frankfurt>`_
201 RESTCONF Collector deployment procedure:
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
212 Description: :doc:`VES Mapper <https://docs.onap.org/en/frankfurt/submodules/dcaegen2.git/docs/sections/services/mapper/>`
214 The following VES mapper blueprint will be used:
216 - `k8s-ves-mapper.yaml <https://git.onap.org/dcaegen2/platform/blueprints/tree/blueprints/k8s-ves-mapper.yaml?h=frankfurt>`_
219 VES Mapper deployment procedure:
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
230 Configure the mapping of the VES event domain to the correct DMaaP topic in Consul: ves-statechange --> unauthenticated.CPE_AUTHENTICATION
232 1. Access Consul UI <http://CONSUL_SERVER_UI:30270/ui/#/dc1/services>
234 2. Modify the dcae-ves-collector configuration by adding a new VES domain to DMaaP topic mapping
238 "ves-statechange": {"type": "message_router", "dmaap_info": {"topic_url": "http://message-router:3904/events/unauthenticated.CPE_AUTHENTICATION"}}
242 3. Click on UPDATE in order to apply the new configuration
245 SDNC: BBS DGs (Directed Graphs)
246 ===============================
248 Make sure that the following BBS DGs in the SDNC DGBuilder are in Active state
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
260 DGBuilder URL: https://sdnc.api.simpledemo.onap.org:30203
265 Configure Access SDN M&C IP address in SDNC DG using dgbuilder. For instance:
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
270 1. Export the relevant DG
272 2. Modify the IP address
274 3. Import back the DG and Activate it
276 DGBuilder URL: https://sdnc.api.simpledemo.onap.org:30203
281 Configure Edge SDN M&C IP address in SDNC DG using dgbuilder. For instance:
283 > GENERIC-RESOURCE-API: bbs-access-connectivity-vnf-topology-operation-common-huawei.json
285 1. Export the relevant DG
287 2. Modify the IP address
289 3. Import back the DG and Activate it
291 DGBuilder URL: https://sdnc.api.simpledemo.onap.org:30203
294 Add SSL certificate of the 3rd party controller into the SDNC trust store
295 =========================================================================
299 kubectl exec -ti dev-sdnc-0 -n onap -- bash
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>
307 Policy: BBS APEX policy
308 =======================
310 Deployment procedure of BBS APEX Policy (master, apex-pdp image v2.3+)
312 1. Make Sure APEX PDP is running and in Active state
317 URL: {{POLICY-PAP-URL}}/policy/pap/v1/pdps
319 2. Create the operational control loop APEX policy type
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
327 3. Create BBS APEX policy
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
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
343 5. Verify the deployment
348 URL: {{POLICY-API-URL}}/policy/api/v1/policytypes/onap.policies.controlloop.operational.Apex/versions/1.0.0/policies/
351 Edge Services: vBNG+AAA+DHCP, Edge SDN M&C
352 ==========================================
354 Installation and setup instructions: `Swisscom Edge SDN M&C and virtual BNG <https://wiki.onap.org/pages/viewpage.action?pageId=63996962>`_
359 Please refer to the following wiki page for further steps related to the BBS service design and instantiation:
361 - `BBS Documentation <https://wiki.onap.org/pages/viewpage.action?pageId=75303137#BBSDocumentation(Frankfurt)-BBSServiceConfiguration>`_
366 - E2E Service deletion workflow does not delete the PNF resource in AAI (`SO-2609 <https://jira.onap.org/browse/SO-2609>`_)
368 .. |image1| image:: files/bbs/BBS_arch_overview.png
370 .. |image2| image:: files/bbs/BBS_system_view.png
372 .. |image3| image:: files/bbs/BBS_dcae-ves-collector_config.png