1 .. This work is licensed under a Creative Commons Attribution 4.0
3 .. http://creativecommons.org/licenses/by/4.0
6 Instantiate Service, VNF, VF modules and Network
7 ================================================
13 Using VID with A-La-Carte method means that the user needs to performed
14 by himself the instantiation of each object : service, VNF(s), VF module(s),
17 ONAP to VIM interactions will occurs when instantiating/deleting VF module(s)
18 or Network(s). In case of an Openstack VIM, Heat Stack(s) will
21 In the following description, the service model in SDC was composed of 1 VF
22 and 1 Virtual Link (Generic Neutron Network)
25 For doing this make sure that while Service Design drag the created VF and Generic NetronNet Virtual Link (under Generic/Network Elemntes list) from the
26 Elements palette to the canvas then connect as mentoned in Create Service section of Service Design under Composition
28 To be able to instantiate VF-module or Network object, some data need to be
29 declared in ONAP SDNC using SDNC Rest API. It is the place where to put
30 the instance specific values such as an IP address value specific
31 to the VNF instance for example.
33 In VID, terminologies are sometimes different than in other components:
35 VNF in VID = VF in SDC
37 Node instance = VF in SDC
39 Network = Virtual Link in SDC
45 pre-instantiation operations must have been performed in AAI and VID,
46 via Rest API, to declare some values for:
48 - Subscriber Name (= customer in AAI)
49 - Service Type or product family (= service subscription in AAI)
54 - LCP Region (= CloudOwner/RegionId in AAI)
57 see, in the ONAP User Guides, section about adding a CloudSite
58 and section about pre-instantiation Operations
61 Robot demo script will be used to populate demo models automatically with Demonstration as Subscriber Name in VID by running "demo-k8s.sh onap init"
67 .. figure:: images/onap-portal.png
72 .. figure:: images/vid-icon-on-portal.png
76 Here after, the VID Home page starts
78 .. figure:: images/home.png
85 Select the API for "A-la-carte"
87 There are two choices:
89 - VNF_API (old) : VID will use the (old) "VNF" SDNC API
90 to get/check some parameters
91 - GR_API (new) : VID will use the "Generic Resource"
92 SDNC API to get/check some parameters
94 .. figure:: images/API_selection.png
102 Click Browse SDC Service Models and search for the service to instantiate.
104 The view show only service models in the DISTRIBUTED state.
106 .. figure:: images/browse-service-models.png
110 Select a service and click Deploy.
112 A dialog box displays.
114 Complete the fields indicated by the red star and click Confirm.
116 .. figure:: images/create-service-instance-alacarte.png
119 A status ox appears that shows the ONAP SO instantiation progress
120 as well as any messages associated with the process.
122 .. figure:: images/create-service-instance-alacarte-success.png
125 A Service object is created in ONAP.
127 Click Close and next screen should appear.
128 It will allow to declare VNF(s) and Network(s)
129 that are part of the service model composition.
131 .. figure:: images/create-service-instance-alacarte-VNF-network.png
138 From previous screen, it is possible to declare a VNF: click on
139 "Add node instance" and select the VNF you want to instantiate in the list
141 The following screen should appear:
143 .. figure:: images/create-vnf-instance-alacarte.png
146 Complete the fields indicated by the red star and click Confirm.
148 A VNF object will be declared in ONAP.
150 Once, ONAP SO process is finished, click on close button.
152 The following screen then should appear:
155 .. figure:: images/create-service-instance-alacarte-after-vnf-instantiated.png
159 Warning: a this step, no VNF instance (e.g. VM) is created on the Cloud Platform.
161 Click on "i" blue button to obtain VNF instance display information.
163 From this screen, it will be possible to get:
165 - the service instance id value
168 Those information will be necessary for the "SDNC preload" step
169 to instantiate the VF module
174 Instantiate VF Module
175 ---------------------
177 It is now possible to declare a VF Module: click on
178 "Add VF-Module" and select the VF-module you want to instantiate in the list
180 The following screen should appear:
182 .. figure:: images/create-vfmodule-instance-alacarte.png
185 From this screen, it will be possible to get:
189 At this step, with this "A-La-Carte" method, it is necessary to declare
190 some information in ONAP SDNC.
192 SDNC needs to be aware about the VNF before trying to use ONAP SO
193 to instantiate the VF-module.
195 This group of data is usually called "SDNC preload" and will contain:
197 - vf-module instance Name
199 - service instance id
200 - the list of vnf parameters with values, when not using the default values
203 Get all the required vnf-parameters values as listed in HEAT package and populate all the key-values in an example SDNC preload curl command to run
205 Some of the vnf-parameters in SDNC preload are related to openstack.
206 Follow the below steps on openstack to get the values and update those values in SDNC preload template accordingly.
208 - download the image from cloud images (ubuntu-14.04 as per HEAT env) and create an image
209 - create the flavor with m1.medium (suggested as per HEAT env)
210 - create OAM_NETWORK ID & OAM_SUBNET ID (use subnet range from base_vfw.env file)
211 - execute openstack security group rule to open all ports for onap
213 Here is an example of SDNC preload for VNF, using "curl" tool
214 to push those data using SDNC Rest API:
219 https://sdnc.api.simpledemo.onap.org:30267/restconf/operations/VNF-API:preload-vnf-topology-operation \
220 -H 'Accept: application/json' \
221 -H 'Authorization: Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ==' \
222 -H 'Content-Type: application/json' \
223 -H 'X-FromAppId: API client' \
224 -H 'X-TransactionId: 0a3f6713-ba96-4971-a6f8-c2da85a3176e' \
225 -H 'cache-control: no-cache' \
228 "request-information": {
229 "notification-url": "onap.org",
231 "order-version": "1",
232 "request-action": "PreloadVNFRequest",
235 "sdnc-request-header": {
236 "svc-action": "reserve",
237 "svc-notification-url": "http:\/\/onap.org:8080\/adapters\/rest\/SDNCNotify",
238 "svc-request-id": "test"
240 "vnf-topology-information": {
242 "availability-zones": [],
248 "vnf-parameter-name": "oam_net_id",
249 "vnf-parameter-value": "oam_network_tXWW"
252 "vnf-topology-identifier": {
253 "generic-vnf-name": "my-vnf-instance-01",
254 "generic-vnf-type": "Service-model-with-VNF-and-Virtual-Link/FreeRadius_VF 0",
255 "service-type": "09f9ffad-1069-43fa-97e8-da7b9a439601",
256 "vnf-name": "my_vf_module-instance-01",
257 "vnf-type": "FreeradiusVf..base_freeRadius..module-0"
264 Data mapping between ONAP SDNC terminology and ONAP SO
266 - "generic-vnf-name" value must be equal to the VNF instance name value
267 (see VNF instance detail screen)
268 - "generic-vnf-type" value must be equal to VNF Type value
269 (see VNF instance detail screen)
270 - "service-type" value must be equal to the service instance id value
271 (see VNF instance detail screen)
272 - "vnf-name" value must be equal to the VF module instance name value
273 - "vnf-type" value must be equal to the "Model Name" value
274 (see create VF module screen)
277 If there is a need for an instance specific value
278 of a VNF parameter (for example : an OAM network id value,
279 specific to this VNF instance),
280 the "vnf-parameters" must be completed with a list of name/value.
282 Once the "SDNC preload" is completed, send it to SDNC using any Rest API Tool.
284 Then, continue on VID and complete the fields indicated by the red star
287 Warning : be very careful to use exactly the same VF module instance name
288 on this screen and in the "SDNC preload"
290 Wait for success and close the popup screen.
292 The following screen should appear:
294 .. figure:: images/create-service-instance-alacarte-after-vfmodule-instantiated.png
297 At that point, the VNF is now instantiated in the cloud platform.
303 Instantiating a network is quite similar to vf-module instantiation
304 (there is also the need for a "SDNC preload")
306 Click on "Add Network" and select the Network you want
307 to instantiate in the list
309 The following screen should appear:
311 .. figure:: images/create-network-instance-alacarte.png
315 Prepare the "SDNC preload" with:
317 - "network-role": provide any value,
318 - "network-technology": use "neutron" as this example will instantiate
319 a network using openstack neutron application
320 - "service-type": value must be equal to "Service Name"
321 (=service model name) displayed on VID screen
322 - "network-name": value must be equal to the desired network instance name,
323 - "network-type": value must be equal to "Model Name""Generic NeutronNet"
324 displayed on VID screen
328 - in "provider-network-information" section, it is possible to indicate
329 some network characteristics
330 - it is possible to add a section about "subnets"
332 Here after, an "SDNC preload" example that can be use for Network
338 https://sdnc.api.simpledemo.onap.org:30267/restconf/operations/VNF-API:preload-network-topology-operation \
339 -H 'Accept: application/json' \
340 -H 'Authorization: Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ==' \
341 -H 'Content-Type: application/json' \
342 -H 'X-FromAppId: API client' \
343 -H 'X-TransactionId: 0a3f6713-ba96-4971-a6f8-c2da85a3176e' \
344 -H 'cache-control: no-cache' \
347 "request-information": {
348 "request-id": "postman001",
349 "notification-url": "http://so.onap.org",
350 "order-number": "postman001",
351 "request-sub-action": "SUPP",
352 "request-action": "PreloadNetworkRequest",
354 "order-version": "1.0"
356 "network-topology-information": {
357 "network-policy": [],
358 "route-table-reference": [],
360 "network-topology-identifier": {
361 "network-role": "integration_test_net",
362 "network-technology": "neutron",
363 "service-type": "Service-model-with-VNF-and-Virtual-Link",
364 "network-name": "my-network-instance-001",
365 "network-type": "Generic NeutronNet"
367 "provider-network-information": {
368 "is-external-network": "false",
369 "is-provider-network": "false",
370 "is-shared-network": "false"
374 "subnet-name": "my-sub_network-instance-001",
375 "subnet-role": "OAM",
376 "start-address": "192.168.90.0",
380 "dhcp-start-address": "",
381 "dhcp-end-address": "",
382 "gateway-address": "192.168.90.1",
387 "sdnc-request-header": {
388 "svc-action": "reserve",
389 "svc-notification-url": "http://so.onap.org",
390 "svc-request-id": "postman001"
396 Once the "SDNC preload" is completed, send it to SDNC using any Rest API Tool.
398 Then, continue on VID and complete the fields indicated by the red star
401 Warning : be very careful to use exactly the same network instance name
402 on this screen and in the "SDNC preload"
404 Wait for success and close the popup screen.
406 The following screen should appear:
408 .. figure:: images/create-network-instance-alacarte-after-instantiated.png
411 At that point, the Network and subnets are now instantiated
412 in the cloud platform.
414 Also, all those network information are available in ONAP AAI,
415 under the terminology
416 "l3-network", with the "neutron-network-id" and the "neutron-subnet-id"
418 the openstack platform.
421 Deleting Network, VF module, VNF, Service
422 -----------------------------------------
424 To delete a service instance using VID, it is necessary to delete objects
425 in the following sequence:
427 - delete VF module(s)
428 - delete VNF instance(s)
430 - delete service instance
432 To proceed those deletion, from VID Home screen
434 - search for existing service instance
435 - edit/view the service instance you want to delete
436 - click on red button with white cross and confirm for each object