summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/guides/onap-user/index.rst2
-rw-r--r--docs/guides/onap-user/vfw-deployment-tutorial/index.rst557
-rw-r--r--docs/guides/onap-user/vfw-deployment-tutorial/media/image1.pngbin0 -> 77425 bytes
-rw-r--r--docs/guides/onap-user/vfw-deployment-tutorial/media/image10.pngbin0 -> 82833 bytes
-rw-r--r--docs/guides/onap-user/vfw-deployment-tutorial/media/image11.pngbin0 -> 102624 bytes
-rw-r--r--docs/guides/onap-user/vfw-deployment-tutorial/media/image12.pngbin0 -> 38647 bytes
-rw-r--r--docs/guides/onap-user/vfw-deployment-tutorial/media/image13.pngbin0 -> 38003 bytes
-rw-r--r--docs/guides/onap-user/vfw-deployment-tutorial/media/image14.pngbin0 -> 43136 bytes
-rw-r--r--docs/guides/onap-user/vfw-deployment-tutorial/media/image15.pngbin0 -> 35266 bytes
-rw-r--r--docs/guides/onap-user/vfw-deployment-tutorial/media/image16.pngbin0 -> 61629 bytes
-rw-r--r--docs/guides/onap-user/vfw-deployment-tutorial/media/image17.pngbin0 -> 81037 bytes
-rw-r--r--docs/guides/onap-user/vfw-deployment-tutorial/media/image18.pngbin0 -> 34245 bytes
-rw-r--r--docs/guides/onap-user/vfw-deployment-tutorial/media/image19.pngbin0 -> 65445 bytes
-rw-r--r--docs/guides/onap-user/vfw-deployment-tutorial/media/image2.pngbin0 -> 50034 bytes
-rw-r--r--docs/guides/onap-user/vfw-deployment-tutorial/media/image20.pngbin0 -> 32384 bytes
-rw-r--r--docs/guides/onap-user/vfw-deployment-tutorial/media/image21.pngbin0 -> 69655 bytes
-rw-r--r--docs/guides/onap-user/vfw-deployment-tutorial/media/image22.pngbin0 -> 40592 bytes
-rw-r--r--docs/guides/onap-user/vfw-deployment-tutorial/media/image23.pngbin0 -> 45966 bytes
-rw-r--r--docs/guides/onap-user/vfw-deployment-tutorial/media/image24.pngbin0 -> 102329 bytes
-rw-r--r--docs/guides/onap-user/vfw-deployment-tutorial/media/image25.pngbin0 -> 31538 bytes
-rw-r--r--docs/guides/onap-user/vfw-deployment-tutorial/media/image26.pngbin0 -> 38820 bytes
-rw-r--r--docs/guides/onap-user/vfw-deployment-tutorial/media/image27.pngbin0 -> 48342 bytes
-rw-r--r--docs/guides/onap-user/vfw-deployment-tutorial/media/image28.pngbin0 -> 36863 bytes
-rw-r--r--docs/guides/onap-user/vfw-deployment-tutorial/media/image29.pngbin0 -> 55476 bytes
-rw-r--r--docs/guides/onap-user/vfw-deployment-tutorial/media/image3.pngbin0 -> 69967 bytes
-rw-r--r--docs/guides/onap-user/vfw-deployment-tutorial/media/image4.pngbin0 -> 59084 bytes
-rw-r--r--docs/guides/onap-user/vfw-deployment-tutorial/media/image5.pngbin0 -> 27463 bytes
-rw-r--r--docs/guides/onap-user/vfw-deployment-tutorial/media/image6.pngbin0 -> 32303 bytes
-rw-r--r--docs/guides/onap-user/vfw-deployment-tutorial/media/image7.pngbin0 -> 44643 bytes
-rw-r--r--docs/guides/onap-user/vfw-deployment-tutorial/media/image8.pngbin0 -> 27445 bytes
-rw-r--r--docs/guides/onap-user/vfw-deployment-tutorial/media/image9.pngbin0 -> 55807 bytes
-rw-r--r--docs/guides/onap-user/vfwcl-design-tutorial/index.rst251
-rw-r--r--docs/guides/onap-user/vfwcl-design-tutorial/media/image1.pngbin0 -> 58872 bytes
-rw-r--r--docs/guides/onap-user/vfwcl-design-tutorial/media/image10.pngbin0 -> 62745 bytes
-rw-r--r--docs/guides/onap-user/vfwcl-design-tutorial/media/image11.pngbin0 -> 78220 bytes
-rw-r--r--docs/guides/onap-user/vfwcl-design-tutorial/media/image12.pngbin0 -> 55416 bytes
-rw-r--r--docs/guides/onap-user/vfwcl-design-tutorial/media/image13.pngbin0 -> 63038 bytes
-rw-r--r--docs/guides/onap-user/vfwcl-design-tutorial/media/image14.pngbin0 -> 52627 bytes
-rw-r--r--docs/guides/onap-user/vfwcl-design-tutorial/media/image15.pngbin0 -> 55564 bytes
-rw-r--r--docs/guides/onap-user/vfwcl-design-tutorial/media/image16.pngbin0 -> 49333 bytes
-rw-r--r--docs/guides/onap-user/vfwcl-design-tutorial/media/image17.pngbin0 -> 75060 bytes
-rw-r--r--docs/guides/onap-user/vfwcl-design-tutorial/media/image18.pngbin0 -> 69223 bytes
-rw-r--r--docs/guides/onap-user/vfwcl-design-tutorial/media/image19.pngbin0 -> 87387 bytes
-rw-r--r--docs/guides/onap-user/vfwcl-design-tutorial/media/image2.pngbin0 -> 62456 bytes
-rw-r--r--docs/guides/onap-user/vfwcl-design-tutorial/media/image20.pngbin0 -> 45912 bytes
-rw-r--r--docs/guides/onap-user/vfwcl-design-tutorial/media/image21.pngbin0 -> 56659 bytes
-rw-r--r--docs/guides/onap-user/vfwcl-design-tutorial/media/image22.pngbin0 -> 75834 bytes
-rw-r--r--docs/guides/onap-user/vfwcl-design-tutorial/media/image23.pngbin0 -> 56672 bytes
-rw-r--r--docs/guides/onap-user/vfwcl-design-tutorial/media/image24.pngbin0 -> 77958 bytes
-rw-r--r--docs/guides/onap-user/vfwcl-design-tutorial/media/image3.pngbin0 -> 58044 bytes
-rw-r--r--docs/guides/onap-user/vfwcl-design-tutorial/media/image4.pngbin0 -> 44901 bytes
-rw-r--r--docs/guides/onap-user/vfwcl-design-tutorial/media/image5.pngbin0 -> 53983 bytes
-rw-r--r--docs/guides/onap-user/vfwcl-design-tutorial/media/image6.pngbin0 -> 28315 bytes
-rw-r--r--docs/guides/onap-user/vfwcl-design-tutorial/media/image7.pngbin0 -> 66075 bytes
-rw-r--r--docs/guides/onap-user/vfwcl-design-tutorial/media/image8.pngbin0 -> 58491 bytes
-rw-r--r--docs/guides/onap-user/vfwcl-design-tutorial/media/image9.pngbin0 -> 70680 bytes
56 files changed, 810 insertions, 0 deletions
diff --git a/docs/guides/onap-user/index.rst b/docs/guides/onap-user/index.rst
index 02d56f2b8..6ffccaeaf 100644
--- a/docs/guides/onap-user/index.rst
+++ b/docs/guides/onap-user/index.rst
@@ -41,6 +41,8 @@ Tutorials
:maxdepth: 1
vFW Design Tutorial <./vfw-design-tutorial/index.rst>
+ vFW Deployment Tutorial <./vfw-deployment-tutorial/index.rst>
+ vFWCL Design Tutorial <./vfwcl-design-tutorial/index.rst>
Verified Use Cases
------------------
diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/index.rst b/docs/guides/onap-user/vfw-deployment-tutorial/index.rst
new file mode 100644
index 000000000..8fce21d01
--- /dev/null
+++ b/docs/guides/onap-user/vfw-deployment-tutorial/index.rst
@@ -0,0 +1,557 @@
+.. This work is licensed under a Creative Commons Attribution 4.0
+.. International License. http://creativecommons.org/licenses/by/4.0
+.. Copyright © 2017-2020 Aarna Networks, Inc.
+
+vFW Service Deployment Tutorial
+###############################
+
+In this tutorial, we will deploy the service created in the previous Service Design tutorial onto OpenStack.
+We will do so by using the VID GUI from the ONAP Portal. Login as user demo.
+
+In this section, you will learn the following through VID GUI
+
+* How to Instantiate a Service
+* How to Instantiate a VNF
+* How to Instantiate VF Module
+* How to Instantiate Network
+
+Let us start by running Robot init script
+
+1. Run Robot init script to populate demo models.
+
+.. code-block::
+
+ cd ~/oom/kubernetes/robot
+ ./demo-k8s.sh onap init
+
+ Result:
+ All tests must pass, below is sample output.
+
+ Number of parameters:
+ 2
+ KEY:
+ init
+ ++ kubectl --namespace onap get pods
+ ++ sed 's/ .*//'
+ ++ grep robot
+ + POD=dev-robot-578b965f4d-vlk8b
+ ++ dirname ./demo-k8s.sh
+ + DIR=.
+ + SCRIPTDIR=scripts/demoscript
+ + ETEHOME=/var/opt/ONAP
+ + '[' ']'
+ ++ kubectl --namespace onap exec dev-robot-578b965f4d-vlk8b -- bash -c 'ls -1q /share/logs/ | wc -l'
+ + export GLOBAL_BUILD_NUMBER=3
+ + GLOBAL_BUILD_NUMBER=3
+ ++ printf %04d 3
+ + OUTPUT_FOLDER=0003_demo_init
+ + DISPLAY_NUM=93
+ + VARIABLEFILES='-V /share/config/robot_properties.py'
+ + kubectl --namespace onap exec dev-robot-578b965f4d-vlk8b -- /var/opt/ONAP/runTags.sh -V /share/config/robot_properties.py
+ -d /share/logs/0003_demo_init -i InitDemo --display 93
+ Starting Xvfb on display :93 with res 1280x1024x24
+ Executing robot tests at log level TRACE
+ ==============================================================================
+ Testsuites
+ ==============================================================================
+ Testsuites.Demo :: Executes the VNF Orchestration Test cases including setu...
+ ==============================================================================
+ Initialize Customer And Models | PASS |
+ ------------------------------------------------------------------------------
+ Initialize SO Openstack Identity For V3 | PASS |
+ ------------------------------------------------------------------------------
+ Testsuites.Demo :: Executes the VNF Orchestration Test cases inclu... | PASS |
+ 2 critical tests, 2 passed, 0 failed
+ 2 tests total, 2 passed, 0 failed
+ ==============================================================================
+ Testsuites | PASS |
+ 2 critical tests, 2 passed, 0 failed
+ 2 tests total, 2 passed, 0 failed
+ ==============================================================================
+ Output: /share/logs/0003_demo_init/output.xml
+ Log: /share/logs/0003_demo_init/log.html
+ Report: /share/logs/0003_demo_init/report.html
+
+2. Create vFW_demo_service Instance
+
+ A. Login into the ONAP portal as user demo / demo123456!
+
+ |image4|
+
+ B. Go to Home and select Virtual Infrastructure Deployment (VID) application
+
+ |image11|
+
+If you see VID reporting a Security failure, and the browser does not give option to Allow Exception button as below
+
+|image22|
+
+Apply the below workaround for the above issue
+
+Copy the vid.api.simpledemo.onap.org:30200 from the above window, open new tab and paste the copied URL
+as https://vid.api.simpledemo.onap.org:30200 and click on Advanced then click on Accept the Risk and Continue tab
+
+|image13|
+
+Then Close the tab, go to the ONAP Home page and load the VID UI again, you will see VID home page
+
+|image17|
+
+ C. Select Test API for A-la-carte as VNF_API(old) then click Browse SDC Service Models (Left side panel)
+
+ |image10|
+
+ D. Search for the service to instantiate, select a service (vfw_demo_service) distributed in SDC and click Deploy
+
+ |image1|
+
+ E. Complete the fields indicated by the red star and click Confirm
+
+ * Instance Name = vFW_service_00
+ * Subscriber Name = Demonstration
+ * Service Type = vFW
+ * Owning Entity = OE-Demonstration
+
+ |image24|
+
+ F. Select Confirm Button
+
+ We should see the “Service instance was created successfully” message
+
+ |image15|
+
+ G. Click Close and the next screen should appear. It will allow you to declare VNF(s) and Network(s)
+ that are part of the service model composition
+
+ |image29|
+
+3. Instantiate a VNF
+
+ A. click on “Add node instance” and select the VNF you want to instantiate in the list
+
+ |image9|
+
+ B. Complete the fields indicated by the red star and click Confirm
+
+ * Instance Name = vFW_demo_VNF
+ * Product Family = vFW
+ * Region = RegionOne(CLOUDOWNER)
+ * Tenant = admin
+ * Line Of Business = LOB-Demonstration
+ * Platform = Platform-Demonstration
+
+ |image6|
+
+You will get a status complete dialog message
+
+|image18|
+
+ C. Click on close button, the following screen then should appear
+
+ |image16|
+
+4. Instantiate VF Module
+
+ Note: Before creating VF module get the required parameter values to prepare SDNC preload data
+
+ A. Copy the following VNF attributes from VNF instance detail screen
+
+ * generic-vnf-name = vFW_demo_VNF (value must be equal to the VNF instance name value)
+
+ |image25|
+
+ * generic-vnf-type = vFW_demo_service/vFW_demo 0 (value must be equal to VNF Type value)
+
+ |image20|
+
+ * service-type = f7c80167-ed06-48ef-a991-61b43196f98f (value must be equal to the service instance id value)
+
+ |image26|
+
+ B. Copy the following attributes From Create VF Module screen
+
+ * vnf-name = lfn_vf_module (value must be equal to the VF module instance name value)
+ * vnf-type = VfwDemo..base_vfw..module-0 (value must be equal to the “Model Name” value - see create VF module screen)
+
+ |image27|
+
+ C. Get the required vnf-parameters values from Heat env file imported while SDC design
+ (refer https://github.com/onap/demo/blob/master/heat/vFW/base_vfw.env)
+
+ Login to Openstack and execute the below commands and get the required openstack related parameter values
+ to update in SDNC preload data
+
+ * download the image ubuntu-14.04 from cloud images & create an image with "ubuntu-14-04-cloud-amd6" name
+ * create the flavor with m1.medium
+ * create OAM_NETWORK ID & OAM_SUBNET ID (use subnet range from base_vfw.env file)
+ * execute openstack security group rule to open all ports for onap
+
+ D. Run the SDNC preload curl command
+ Below is the sample curl command updated with all the required parameters
+
+ .. code-block::
+
+ curl -k -X POST \
+ https://sdnc.api.simpledemo.onap.org:30267/restconf/operations/VNF-API:preload-vnf-topology-operation \
+ -H 'Accept: application/json' \
+ -H 'Authorization: Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ==' \
+ -H 'Content-Type: application/json' \
+ -H 'X-FromAppId: API client' \
+ -H 'X-TransactionId: 0a3f6713-ba96-4971-a6f8-c2da85a3176e' \
+ -H 'cache-control: no-cache' \
+ -d '{
+ "input": {
+ "request-information": {
+ "notification-url": "onap.org",
+ "order-number": "1",
+ "order-version": "1",
+ "request-action": "PreloadVNFRequest",
+ "request-id": "test"
+ },
+ "sdnc-request-header": {
+ "svc-action": "reserve",
+ "svc-notification-url": "http:\/\/onap.org:8080\/adapters\/rest\/SDNCNotify",
+ "svc-request-id": "test"
+ },
+ "vnf-topology-information": {
+ "vnf-assignments": {
+ "availability-zones": [],
+ "vnf-networks": [],
+ "vnf-vms": []
+ },
+ "vnf-parameters": [{
+ "vnf-parameter-name": "vfw_image_name",
+ "vnf-parameter-value": "ubuntu-14-04-cloud-amd6"
+ },
+ {
+ "vnf-parameter-name": "vfw_flavor_name",
+ "vnf-parameter-value": "m1.medium"
+ },
+ {
+ "vnf-parameter-name": "vfw_name_0",
+ "vnf-parameter-value": "zdfw1fwl01fwl01"
+ },
+ {
+ "vnf-parameter-name": "vfw_int_unprotected_private_ip_0",
+ "vnf-parameter-value": "192.168.10.101"
+ },
+ {
+ "vnf-parameter-name": "vfw_int_protected_private_ip_0",
+ "vnf-parameter-value": "192.168.20.101"
+ },
+ {
+ "vnf-parameter-name": "vfw_onap_private_ip_0",
+ "vnf-parameter-value": "10.0.100.5"
+ },
+ {
+ "vnf-parameter-name": "vfw_int_protected_private_floating_ip",
+ "vnf-parameter-value": "192.168.10.200"
+ },
+ {
+ "vnf-parameter-name": "vpg_int_unprotected_private_ip_0",
+ "vnf-parameter-value": "192.168.10.201"
+ },
+ {
+ "vnf-parameter-name": "vpg_image_name",
+ "vnf-parameter-value": "ubuntu-14-04-cloud-amd6"
+ },
+ {
+ "vnf-parameter-name": "vpg_flavor_name",
+ "vnf-parameter-value": "m1.medium"
+ },
+ {
+ "vnf-parameter-name": "vpg_name_0",
+ "vnf-parameter-value": "zdfw1fwl01pgn01"
+ },
+ {
+ "vnf-parameter-name": "vpg_onap_private_ip_0",
+ "vnf-parameter-value": "10.0.100.6"
+ },
+ {
+ "vnf-parameter-name": "vsn_image_name",
+ "vnf-parameter-value": "ubuntu-14-04-cloud-amd6"
+ },
+ {
+ "vnf-parameter-name": "vsn_flavor_name",
+ "vnf-parameter-value": "m1.medium"
+ },
+ {
+ "vnf-parameter-name": "vsn_name_0",
+ "vnf-parameter-value": "zdfw1fwl01snk01"
+ },
+ {
+ "vnf-parameter-name": "vsn_int_protected_private_ip_0",
+ "vnf-parameter-value": "192.168.20.251"
+ },
+ {
+ "vnf-parameter-name": "vsn_onap_private_ip_0",
+ "vnf-parameter-value": "10.0.100.7"
+ },
+ {
+ "vnf-parameter-name": "public_net_id",
+ "vnf-parameter-value": "07e85197-0f0a-45ca-8a6e-8eee47cec56b"
+ },
+ {
+ "vnf-parameter-name": "unprotected_private_net_id",
+ "vnf-parameter-value": "zdfw1fwl01_unprotected"
+ },
+ {
+ "vnf-parameter-name": "unprotected_private_net_cidr",
+ "vnf-parameter-value": "192.168.10.0/24"
+ },
+ {
+ "vnf-parameter-name": "protected_private_net_id",
+ "vnf-parameter-value": "zdfw1fwl01_protected"
+ },
+ {
+ "vnf-parameter-name": "protected_private_net_cidr",
+ "vnf-parameter-value": "192.168.20.0/24"
+ },
+ {
+ "vnf-parameter-name": "onap_private_net_id",
+ "vnf-parameter-value": "OAM_NETWORK"
+ },
+ {
+ "vnf-parameter-name": "onap_private_subnet_id",
+ "vnf-parameter-value": "OAM_SUBNET"
+ },
+ {
+ "vnf-parameter-name": "onap_private_net_cidr",
+ "vnf-parameter-value": "10.0.0.0/16"
+ },
+ {
+ "vnf-parameter-name": "vfw_name",
+ "vnf-parameter-value": "vFW_demo_VNF"
+ },
+ {
+ "vnf-parameter-name": "vnf_id:",
+ "vnf-parameter-value": "vFirewall_demo_app"
+ },
+ {
+ "vnf-parameter-name": "vf_module_id:",
+ "vnf-parameter-value": "vFirewall"
+ },
+ {
+ "vnf-parameter-name": "dcae_collector_ip",
+ "vnf-parameter-value": "10.43.134.33"
+ },
+ {
+ "vnf-parameter-name": "dcae_collector_port",
+ "vnf-parameter-value": "30417"
+ },
+ {
+ "vnf-parameter-name": "demo_artifacts_version",
+ "vnf-parameter-value": "1.6.0-SNAPSHOT"
+ },
+ {
+ "vnf-parameter-name": "install_script_version",
+ "vnf-parameter-value": "1.6.0-SNAPSHOT"
+ },
+ {
+ "vnf-parameter-name": "key_name",
+ "vnf-parameter-value": "vfw_key"
+ },
+ {
+ "vnf-parameter-name": "pub_key",
+ "vnf-parameter-value": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCofPKCypUIALLlSAa/INJZpnz6dPnTKuKkqO5Wxkv35PnHpXVmKit1iXNcy85+ceoMUrMre8O7SjIhdRklnOckW68WmkM9A+pFIFhxoKRfO0WR2/qZyXxM9WuQ5ESdXuBj5ydx7XlWWDtGTWF3wWxrFwob2EkWm+EXFrx18bNs8OqJF+1DDJfjLcC8kKgCwSKNcuRelDSBBaIrIDROdHi1r2AbdL/REZ4sprUTICVAhezX9mPowMX8Mr3ZuTxV9HpU43nlxfWxm9vDstyhiUMpYYCOWUfA/Gzxz/F1pli9L4MfpDsiwGaJtnnQ3vWiYRPZBTv+6h1miYlw4Fm7vJq9 aarna-onap"
+ },
+ {
+ "vnf-parameter-name": "cloud_env",
+ "vnf-parameter-value": "openstack"
+ },
+ {
+ "vnf-parameter-name": "sec_group",
+ "vnf-parameter-value": "default"
+ },
+ {
+ "vnf-parameter-name": "nexus_artifact_repo",
+ "vnf-parameter-value": "https://nexus.onap.org"
+ }
+ ],
+ "vnf-topology-identifier": {
+ "generic-vnf-name": "vFW_demo_VNF",
+ "generic-vnf-type": "vFW_demo_service/vFW_demo 0",
+ "service-type": "f7c80167-ed06-48ef-a991-61b43196f98f",
+ "vnf-name": "lfn_vf_module",
+ "vnf-type": "VfwDemo..base_vfw..module-0"
+ }
+ }
+ }
+ }'
+
+ Output looks somthing like below
+ {"output":{"svc-request-id":"test","response-code":"200","ack-final-indicator":"Y"}}
+
+ E. Now click on Add VF-Module with the same name as updated through SDNC preload, click on SDN-C Preload
+ check box then press confirm
+
+ |image28|
+
+You will get a status complete dialog message
+
+|image2|
+
+ F. Click on close, now the following screen should appear
+
+ |image19|
+
+5. Instantiate Network
+
+ A. Prepare the “SDNC preload” data before creating network instance
+
+ * network-role = integration_test_net (provide any value)
+ * network-technology = neutron (use “neutron” as this example will instantiate a network using openstack neutron application)
+ * service-type = vFW_demo_service (value must be equal to “Service Name” (=service model name) displayed on VID screen)
+
+ |image5|
+
+ * network-name = lfn_nwt_001 (value must be equal to the desired network instance name)
+
+ |image7|
+
+ * network-type = Generic NeutronNet (value must be equal to “Model Name”“Generic NeutronNet” displayed on VID screen)
+
+ |image8|
+
+ B. Run the below SDNC preload curl command
+
+ .. code-block::
+
+ curl -k -X POST \
+ https://sdnc.api.simpledemo.onap.org:30267/restconf/operations/VNF-API:preload-network-topology-operation \
+ -H 'Accept: application/json' \
+ -H 'Authorization: Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ==' \
+ -H 'Content-Type: application/json' \
+ -H 'X-FromAppId: API client' \
+ -H 'X-TransactionId: 0a3f6713-ba96-4971-a6f8-c2da85a3176e' \
+ -H 'cache-control: no-cache' \
+ -d '{
+ "input": {
+ "request-information": {
+ "request-id": "postman001",
+ "notification-url": "http://so.onap.org",
+ "order-number": "postman001",
+ "request-sub-action": "SUPP",
+ "request-action": "PreloadNetworkRequest",
+ "source": "postman",
+ "order-version": "1.0"
+ },
+ "network-topology-information": {
+ "network-policy": [],
+ "route-table-reference": [],
+ "vpn-bindings": [],
+ "network-topology-identifier": {
+ "network-role": "integration_test_net",
+ "network-technology": "neutron",
+ "service-type": "vFW_demo_service",
+ "network-name": "lfn_nwt_001",
+ "network-type": "Generic NeutronNet"
+ },
+ "provider-network-information": {
+ "is-external-network": "false",
+ "is-provider-network": "false",
+ "is-shared-network": "false"
+ },
+ "subnets": [
+ {
+ "subnet-name": "test-subnet-001",
+ "subnet-role": "OAM",
+ "start-address": "10.0.0.11",
+ "cidr-mask": "16",
+ "ip-version": "4",
+ "dhcp-enabled": "Y",
+ "dhcp-start-address": "",
+ "dhcp-end-address": "",
+ "gateway-address": "10.0.0.1",
+ "host-routes":[]
+ }
+ ]
+ },
+ "sdnc-request-header": {
+ "svc-action": "reserve",
+ "svc-notification-url": "http://so.onap.org",
+ "svc-request-id": "postman001"
+ }
+ }
+ }
+ '
+
+ Output looks something like below
+ {"output":{"svc-request-id":"postman001","response-code":"200","ack-final-indicator":"Y"}}
+
+ C. Click on “Add Network” and select the Network you want to instantiate in the list
+
+ |image12|
+
+ D. Click Confirm, We will get a status complete dialog message
+
+ |image14|
+
+ E. Click close, the following screen should appear
+
+ |image3|
+
+ At this point, the Network and subnets are now instantiated in the cloud platform
+
+6. Now login to OpenStack Horizon dashboard, see stacks created in Openstack
+
+ A. Go to Project → Orchestration → Stacks
+ We can see the VF module and Network stacks status
+
+ |image23|
+
+ B. Now we can go to Admin → Compute → Instances to check the instances status
+
+ |image21|
+
+
+.. |image4| image:: media/image4.png
+.. |image11| image:: media/image11.png
+.. |image22| image:: media/image22.png
+.. |image13| image:: media/image13.png
+.. |image17| image:: media/image17.png
+.. |image10| image:: media/image10.png
+.. |image1| image:: media/image1.png
+.. |image24| image:: media/image24.png
+.. |image15| image:: media/image15.png
+.. |image29| image:: media/image29.png
+.. |image9| image:: media/image9.png
+.. |image6| image:: media/image6.png
+.. |image18| image:: media/image18.png
+.. |image16| image:: media/image16.png
+.. |image25| image:: media/image25.png
+.. |image20| image:: media/image20.png
+.. |image26| image:: media/image26.png
+.. |image27| image:: media/image27.png
+.. |image28| image:: media/image28.png
+.. |image2| image:: media/image2.png
+.. |image19| image:: media/image19.png
+.. |image5| image:: media/image5.png
+.. |image7| image:: media/image7.png
+.. |image8| image:: media/image8.png
+.. |image12| image:: media/image12.png
+.. |image14| image:: media/image14.png
+.. |image3| image:: media/image3.png
+.. |image23| image:: media/image23.png
+.. |image21| image:: media/image21.png
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image1.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image1.png
new file mode 100644
index 000000000..9a436a562
--- /dev/null
+++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image1.png
Binary files differ
diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image10.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image10.png
new file mode 100644
index 000000000..570ad8cd9
--- /dev/null
+++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image10.png
Binary files differ
diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image11.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image11.png
new file mode 100644
index 000000000..9e7b8415d
--- /dev/null
+++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image11.png
Binary files differ
diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image12.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image12.png
new file mode 100644
index 000000000..ace4b578e
--- /dev/null
+++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image12.png
Binary files differ
diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image13.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image13.png
new file mode 100644
index 000000000..58052a16b
--- /dev/null
+++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image13.png
Binary files differ
diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image14.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image14.png
new file mode 100644
index 000000000..10802bb1c
--- /dev/null
+++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image14.png
Binary files differ
diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image15.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image15.png
new file mode 100644
index 000000000..2421422a9
--- /dev/null
+++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image15.png
Binary files differ
diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image16.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image16.png
new file mode 100644
index 000000000..41402574a
--- /dev/null
+++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image16.png
Binary files differ
diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image17.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image17.png
new file mode 100644
index 000000000..f3cd0551c
--- /dev/null
+++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image17.png
Binary files differ
diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image18.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image18.png
new file mode 100644
index 000000000..202870d17
--- /dev/null
+++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image18.png
Binary files differ
diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image19.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image19.png
new file mode 100644
index 000000000..588bdf9a4
--- /dev/null
+++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image19.png
Binary files differ
diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image2.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image2.png
new file mode 100644
index 000000000..3c473a492
--- /dev/null
+++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image2.png
Binary files differ
diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image20.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image20.png
new file mode 100644
index 000000000..e0a518868
--- /dev/null
+++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image20.png
Binary files differ
diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image21.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image21.png
new file mode 100644
index 000000000..deee9b45c
--- /dev/null
+++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image21.png
Binary files differ
diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image22.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image22.png
new file mode 100644
index 000000000..b757cd2de
--- /dev/null
+++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image22.png
Binary files differ
diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image23.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image23.png
new file mode 100644
index 000000000..b46209a98
--- /dev/null
+++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image23.png
Binary files differ
diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image24.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image24.png
new file mode 100644
index 000000000..35f60af5a
--- /dev/null
+++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image24.png
Binary files differ
diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image25.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image25.png
new file mode 100644
index 000000000..c80cf7ace
--- /dev/null
+++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image25.png
Binary files differ
diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image26.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image26.png
new file mode 100644
index 000000000..0057a5742
--- /dev/null
+++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image26.png
Binary files differ
diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image27.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image27.png
new file mode 100644
index 000000000..864809ef5
--- /dev/null
+++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image27.png
Binary files differ
diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image28.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image28.png
new file mode 100644
index 000000000..971ab49ed
--- /dev/null
+++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image28.png
Binary files differ
diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image29.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image29.png
new file mode 100644
index 000000000..3f70ea3b3
--- /dev/null
+++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image29.png
Binary files differ
diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image3.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image3.png
new file mode 100644
index 000000000..5dd1626ba
--- /dev/null
+++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image3.png
Binary files differ
diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image4.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image4.png
new file mode 100644
index 000000000..2fd589510
--- /dev/null
+++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image4.png
Binary files differ
diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image5.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image5.png
new file mode 100644
index 000000000..acf13703f
--- /dev/null
+++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image5.png
Binary files differ
diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image6.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image6.png
new file mode 100644
index 000000000..b15d9eb8f
--- /dev/null
+++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image6.png
Binary files differ
diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image7.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image7.png
new file mode 100644
index 000000000..08212e5c6
--- /dev/null
+++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image7.png
Binary files differ
diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image8.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image8.png
new file mode 100644
index 000000000..8a8f5ebf0
--- /dev/null
+++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image8.png
Binary files differ
diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image9.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image9.png
new file mode 100644
index 000000000..8c8691c0f
--- /dev/null
+++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image9.png
Binary files differ
diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/index.rst b/docs/guides/onap-user/vfwcl-design-tutorial/index.rst
new file mode 100644
index 000000000..db68382e0
--- /dev/null
+++ b/docs/guides/onap-user/vfwcl-design-tutorial/index.rst
@@ -0,0 +1,251 @@
+.. This work is licensed under a Creative Commons Attribution 4.0
+.. International License. http://creativecommons.org/licenses/by/4.0
+.. Copyright © 2017-2020 Aarna Networks, Inc.
+
+vFWCL Design Tutorial
+#####################
+
+The instructions in this section will enable you to design the vFW Control Loop. The prerequisite for this tutorial is that the
+vFW_service design/deployment/instantiation should be completed.
+
+Control Loop Flow
+=================
+
+This section describes the vFW control loop flow and the modules involved. Following is the list of modules
+that are involved in designing and deploying the vFW CL
+
+ 1) SDC: The first step of the procedure is to distribute the DCAE (TCA microservice) blueprint. That is done through ONAP SDC.
+ 2) CLAMP: This is a tool for designing the policy and configuring the TCA threshold. CLAMP, along with DCAE, can also be used
+ to manage the lifecycle of CLs
+ 3) DCAE (platform and micro services): Multiple components of the DCAE module get involved in the overall lifecycle of the CL.
+ 4) TCA: The CDAP threshold controlling application is a DCAE microservice.
+ 5) ONAP Policy engine: The output of DCAE is sent to the Policy engine as an input event. We will use the DROOLS Policy engine.
+ 6) APPC : The last hop in the CL, which takes the config action on the vPG on the output of the Policy engine.
+
+Distribute DCAE blueprints
+==========================
+
+In order to distribute the DCAE microservice blueprints we need to create a dummy service. The DCAE blueprint will be added as an artifact
+to the VF inside the service during service composition time.
+
+Follow the below steps to upload the blueprint for the TCA (Threshold Checking Application) DCAE microservice and Distribute the service to the CLAMP
+
+The following screenshot of the setup shows where “dcae_service” has been created and is in the composition phase.
+
+.. note::
+ The service name should not contain any spaces. The DCAE policy fails to fetch the service from PDP if the name has a space.
+ For example ‘dcae1’ will work and ‘dcae 1’ will not.
+
+1. Login as DESIGNER (cs0008) and create the service, checkin and certify
+
+|image16|
+
+2. Add any VNF (ex: vfw_pg) that was already created during the SDC design phase
+
+In the composition canvas drag and drop a resource of type VF from the abstract section in the Elements section (left hand side panel)
+
+|image15|
+
+3. Download the required DCAE MS blueprint to be attached to the service
+
+Use the sample TCA blueprint located here:
+https://git.onap.org/dcaegen2/platform/blueprints/tree/blueprints/k8s-tcagen2-clampnode.yaml
+
+.. note::
+ * Check if the version of the plugin used in the blueprint is different from existing, then update the blueprint import to match
+ * To check the version run this: `cfy plugins list | grep k8splugin`
+
+4. Now upload the Control Loop Artifact. The procedure to upload the artifact is
+
+ * Click on the VF, as in the picture above the ‘vsp_pg 0’ is selected
+ * Click on ‘DEPLOYMENT ARTIFACTS’ and then click on “Add Artifact”
+
+ |image5|
+
+ * Fill the details and in the type select DCAE_INVENTORY_BLUEPRINT, then click on Done as in the picture shown below
+
+ |image13|
+
+5. After uploading the DCAE artifact to the SDC Service, attach the policy model to the Service. From the left drop down,
+select TCA policy under Policies, and click on the Add policy
+
+|image1|
+
+6. Click on Checkin on top right corner then click OK
+
+|image12|
+
+7. Search and select the same service from CATALOG and click on Certify on top right corner
+
+|image14|
+
+8. Click Distribute to distribute the service, then click on Distribution in the left hand side panel and monitor until
+the distribution is complete. We should see artifacts deployed in CLAMP and Policy engine, as can be seen in the picture below
+
+|image19|
+
+At this point we can open the CLAMP GUI and verify that the DCAE microservice design template is in place
+
+DCAE MS design in CLAMP
+=======================
+
+CLAMP is a GUI tool which enables the users to design the policies, distribute them to the DROOLS engine and eventually deploy
+the DCAE microservices. In this section we are going to design, distribute and deploy the BRMS (DROOLS) and TCA policy.
+
+Clamp uses AAF to authenticate the user and get the different permissions. In order to access the CLAMP GUI we will need to add the certificate.
+
+1. Add the necessary certificates in the browser
+
+The default certificate can be found here: https://gerrit.onap.org/r/gitweb?p=clamp.git;a=blob;f=src/main/resources/clds/aaf/org.onap.clamp.p12;h=268aa1a3ce56e01448f8043cc0b05b5fceb5a47d;hb=HEAD
+
+The password is: "China in the Spring"
+The certificate must be loaded into your favorite browser before trying to load the CLAMP UI.
+
+Ex: In case of Firefox browser, below is the procedure on how to add the certificate
+
+Open firefox browser and go to Preferences and search for Certificate Manager and Select “View Certificates“ button.
+This will open the following dialog to import certificate files from Your certificates menu.
+
+You need to go in options->Privacy & Security-> Scroll down to Certificates options a View Certificates Button
+and then Your certificates Tab -> Then Import button
+
+|image6|
+
+2. After the certificate is added, the CLAMP GUI can be accessed at:
+`https://<host_IP>:30258` (host_IP is the node IP where CLAMP is running)
+
+3. Before designing the policy we need to undeploy the default tca policy.
+To undeploy default policy execute the below commands on control node
+
+.. code-block::
+
+ > kubectl get deployments -n onap | grep "dep-dcae-tca-analytics\|dcaegen2-analytics-tca" | awk '{print $1}' |
+ xargs kubectl delete deployments -n onap
+ > kubectl get svc -n onap | grep "dcae-tca-analytics\|dcaegen2-analytics-tca" | awk '{print $1}' |
+ xargs kubectl delete svc -n onap
+ To Verify there are no dcae-analytics POD, run the below command
+ > kubectl get pods -n onap | grep 'analytics'
+
+4. If the service has been distributed correctly, following is how the service design templates
+listed in the Loop Templates as below
+
+|image7|
+
+Available Policy Models
+
+|image10|
+
+5. Create the loop from the templates distributed by SDC
+
+|image4|
+
+|image20|
+
+6. Add the Operational Policy
+Click on Loop Instance drop down and select Modify then click, select the policy model type then click Add
+
+|image9|
+
+|image3|
+
+7. Click on the MS application box and configure
+Fill the details in the pop up window and click on the save changes button.
+
+ A. Click on app and Edit the Policy details, fill the below details
+
+ * eventName: vFirewallBroadcastPackets
+ * policyScope: DCAE
+ * policyVersion: v0.0.1
+ * Select controlLoopSchemaType as VM
+ * policyName: DCAE.Config_tca-hi-lo
+ * Select Pdp Group Info from the drop down as defaultGroup & xacm
+
+ |image17|
+
+ B. Click on the Add monitoring threshold1 button and fill the below details
+
+ * version : 1.0.2
+ * closedLoopControlName : name of the CL (ex: LOOP_TEMPLATE_mytest_srv_v1_0_vsp_pg0_k8s-tca)
+ * select the direction from dropdown (ex: LESS)
+
+ |image11|
+
+ C. Click on the Add monitoring threshold2 button and fill the details same as above then click on Save Changes button
+
+ |image24|
+
+8. Click on the Operational policy box and configure
+Fill the details in the pop window then click on save changes
+
+|image22|
+
+|image18|
+
+9. Submit the control loop to the policy
+From Loop Operations drop down select SUBMIT and click
+
+|image23|
+
+10. Deploy the control loop to DCAE
+From Loop Operations drop down select DEPLOY and click, verify the details and click Deploy
+
+|image2|
+
+|image8|
+
+Status Logs
+
+|image21|
+
+A successful deployment will make the service as DEPLOYED
+
+11. You can login into the control node and verify whether your new analytics application got deployed using below command
+
+.. code-block::
+
+ > kubectl get pods -n onap | grep analytics
+ Sample output
+ dep-dcae-tca-analytics-7fccbf459-xkxlq 2/2 Running 0 6m15s
+
+ > cfy deployment list | grep CLAMP
+ Sample output
+ | CLAMP_615bb47a-ea3e-4a02-8928-0564df900826 | CLAMP_615bb47a-ea3e-4a02-8928-0564df900826 | 2020-11-10 19:23:22.286 |
+ 2020-11-10 19:23:22.286 | tenant | default_tenant | admin |
+
+
+.. |image16| image:: media/image16.png
+.. |image15| image:: media/image15.png
+.. |image5| image:: media/image5.png
+.. |image13| image:: media/image13.png
+.. |image1| image:: media/image1.png
+.. |image12| image:: media/image12.png
+.. |image14| image:: media/image14.png
+.. |image19| image:: media/image19.png
+.. |image6| image:: media/image6.png
+.. |image7| image:: media/image7.png
+.. |image10| image:: media/image10.png
+.. |image4| image:: media/image4.png
+.. |image20| image:: media/image20.png
+.. |image9| image:: media/image9.png
+.. |image3| image:: media/image3.png
+.. |image17| image:: media/image17.png
+.. |image11| image:: media/image11.png
+.. |image24| image:: media/image24.png
+.. |image22| image:: media/image22.png
+.. |image18| image:: media/image18.png
+.. |image23| image:: media/image23.png
+.. |image2| image:: media/image2.png
+.. |image8| image:: media/image8.png
+.. |image21| image:: media/image21.png
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image1.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image1.png
new file mode 100644
index 000000000..c0b5dc668
--- /dev/null
+++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image1.png
Binary files differ
diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image10.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image10.png
new file mode 100644
index 000000000..952b3e0f0
--- /dev/null
+++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image10.png
Binary files differ
diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image11.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image11.png
new file mode 100644
index 000000000..9618c3a3a
--- /dev/null
+++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image11.png
Binary files differ
diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image12.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image12.png
new file mode 100644
index 000000000..9cc9373d2
--- /dev/null
+++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image12.png
Binary files differ
diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image13.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image13.png
new file mode 100644
index 000000000..797b961e0
--- /dev/null
+++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image13.png
Binary files differ
diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image14.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image14.png
new file mode 100644
index 000000000..5f974d776
--- /dev/null
+++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image14.png
Binary files differ
diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image15.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image15.png
new file mode 100644
index 000000000..58827b12c
--- /dev/null
+++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image15.png
Binary files differ
diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image16.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image16.png
new file mode 100644
index 000000000..e2c0595d9
--- /dev/null
+++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image16.png
Binary files differ
diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image17.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image17.png
new file mode 100644
index 000000000..fdeb56f8d
--- /dev/null
+++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image17.png
Binary files differ
diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image18.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image18.png
new file mode 100644
index 000000000..e29b3cf96
--- /dev/null
+++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image18.png
Binary files differ
diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image19.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image19.png
new file mode 100644
index 000000000..bb314752b
--- /dev/null
+++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image19.png
Binary files differ
diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image2.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image2.png
new file mode 100644
index 000000000..10a034744
--- /dev/null
+++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image2.png
Binary files differ
diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image20.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image20.png
new file mode 100644
index 000000000..675fa1cdc
--- /dev/null
+++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image20.png
Binary files differ
diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image21.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image21.png
new file mode 100644
index 000000000..1e6f052c7
--- /dev/null
+++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image21.png
Binary files differ
diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image22.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image22.png
new file mode 100644
index 000000000..3844ef458
--- /dev/null
+++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image22.png
Binary files differ
diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image23.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image23.png
new file mode 100644
index 000000000..7f8869ec2
--- /dev/null
+++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image23.png
Binary files differ
diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image24.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image24.png
new file mode 100644
index 000000000..dea4d33cb
--- /dev/null
+++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image24.png
Binary files differ
diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image3.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image3.png
new file mode 100644
index 000000000..54f7c48a4
--- /dev/null
+++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image3.png
Binary files differ
diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image4.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image4.png
new file mode 100644
index 000000000..aeb403cce
--- /dev/null
+++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image4.png
Binary files differ
diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image5.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image5.png
new file mode 100644
index 000000000..76d3147a8
--- /dev/null
+++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image5.png
Binary files differ
diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image6.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image6.png
new file mode 100644
index 000000000..5c57abe17
--- /dev/null
+++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image6.png
Binary files differ
diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image7.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image7.png
new file mode 100644
index 000000000..f42969be1
--- /dev/null
+++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image7.png
Binary files differ
diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image8.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image8.png
new file mode 100644
index 000000000..552d69c64
--- /dev/null
+++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image8.png
Binary files differ
diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image9.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image9.png
new file mode 100644
index 000000000..25bffb498
--- /dev/null
+++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image9.png
Binary files differ