introducing vpp-demo 74/44674/15
authorMichal Cmarada <mcmarada@cisco.com>
Wed, 28 Sep 2016 08:58:02 +0000 (10:58 +0200)
committerMichal Cmarada <mcmarada@cisco.com>
Thu, 13 Oct 2016 15:27:29 +0000 (15:27 +0000)
- basic setup environment

Change-Id: I1ad5ca007dc4cef8ad63b9272ada723ff06b93f5
Signed-off-by: Michal Cmarada <mcmarada@cisco.com>
14 files changed:
demos/vpp-demo/.gitignore [new file with mode: 0644]
demos/vpp-demo/Vagrantfile [new file with mode: 0644]
demos/vpp-demo/local-demo-postman.json [new file with mode: 0644]
demos/vpp-demo/readme.rst [new file with mode: 0644]
demos/vpp-demo/register_vpp_node.sh [new file with mode: 0644]
demos/vpp-demo/reload-nodes.sh [new file with mode: 0644]
demos/vpp-demo/vagrant_scripts/add-user.sh [new file with mode: 0644]
demos/vpp-demo/vagrant_scripts/configure-vpp.sh [new file with mode: 0644]
demos/vpp-demo/vagrant_scripts/fix-perms.sh [new file with mode: 0644]
demos/vpp-demo/vagrant_scripts/install-hc.sh [new file with mode: 0644]
demos/vpp-demo/vagrant_scripts/install-java8.sh [new file with mode: 0644]
demos/vpp-demo/vagrant_scripts/install-odl.sh [new file with mode: 0644]
demos/vpp-demo/vagrant_scripts/install-prereqs.sh [new file with mode: 0644]
demos/vpp-demo/vagrant_scripts/install-vpp.sh [new file with mode: 0644]

diff --git a/demos/vpp-demo/.gitignore b/demos/vpp-demo/.gitignore
new file mode 100644 (file)
index 0000000..294d374
--- /dev/null
@@ -0,0 +1,7 @@
+*.deb
+*.deb.md5
+*.noarch.rpm
+*.rpm
+.vagrant
+distribution-karaf-*.tar.gz
+distribution-karaf-*.zip
\ No newline at end of file
diff --git a/demos/vpp-demo/Vagrantfile b/demos/vpp-demo/Vagrantfile
new file mode 100644 (file)
index 0000000..1f9a576
--- /dev/null
@@ -0,0 +1,138 @@
+# Copyright (c) 2016 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+
+#     http://www.apache.org/licenses/LICENSE-2.0
+
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# -*- mode: ruby -*-
+# vi: set ts=2 sw=2 sts=2 et ft=ruby :
+
+def add_compute(config, name, mgmt_ip, port1, port2)
+  config.vm.box_check_update = false
+  config.vbguest.auto_update = true
+  config.vm.define name do |node|
+    if Vagrant.has_plugin?("vagrant-proxyconf")
+      if ENV["http_proxy"]
+        config.proxy.http     = ENV["http_proxy"]
+      end
+      if ENV["https_proxy"]
+        config.proxy.https    = ENV["https_proxy"]
+      end
+      if ENV["no_proxy"]
+        config.proxy.no_proxy = ENV["no_proxy"]
+      end
+    end
+    node.vm.box = "puppetlabs/ubuntu-14.04-64-nocm"
+    node.vm.hostname = name
+    node.vm.provision "shell", path: "vagrant_scripts/fix-perms.sh"
+    node.vm.provision "shell", path: "vagrant_scripts/add-user.sh"
+    node.vm.provision "shell", path: "vagrant_scripts/install-prereqs.sh"
+    node.vm.provision "shell", path: "vagrant_scripts/install-java8.sh"
+    node.vm.provision "shell", path: "vagrant_scripts/install-vpp.sh"
+    node.vm.provision "shell", path: "vagrant_scripts/configure-vpp.sh"
+    node.vm.provision "shell", path: "vagrant_scripts/install-hc.sh"
+
+    node.vm.network "private_network", ip: mgmt_ip
+    node.vm.network "private_network", type: "dhcp", auto_config: false, virtualbox__intnet: port1
+    node.vm.network "private_network", type: "dhcp", auto_config: false, virtualbox__intnet: port2
+    node.vm.provider "virtualbox" do |vb|
+      vb.memory = "4096"
+      vb.cpus = 2
+      vb.customize ["modifyvm", :id, "--ioapic", "on"]
+      vb.customize ["setextradata", :id, "VBoxInternal/CPUM/SSE4.1", "1"]
+      vb.customize ["setextradata", :id, "VBoxInternal/CPUM/SSE4.2", "1"]
+      vb.customize ["modifyvm", :id, "--nicpromisc3", "allow-all"]
+      vb.customize ["modifyvm", :id, "--nicpromisc4", "allow-all"]
+    end
+  end
+end
+
+def add_controller(config, name, mgmt_ip, port1, port2)
+  config.vm.box_check_update = false
+  config.vbguest.auto_update = true
+  config.vm.define name do |node|
+    if Vagrant.has_plugin?("vagrant-proxyconf")
+      if ENV["http_proxy"]
+        config.proxy.http     = ENV["http_proxy"]
+      end
+      if ENV["https_proxy"]
+        config.proxy.https    = ENV["https_proxy"]
+      end
+      if ENV["no_proxy"]
+        config.proxy.no_proxy = ENV["no_proxy"]
+      end
+    end
+    node.vm.box = "puppetlabs/ubuntu-14.04-64-nocm"
+    node.vm.hostname = name
+    node.vm.provision "shell", path: "vagrant_scripts/fix-perms.sh"
+    node.vm.provision "shell", path: "vagrant_scripts/add-user.sh"
+    node.vm.provision "shell", path: "vagrant_scripts/install-prereqs.sh"
+    node.vm.provision "shell", path: "vagrant_scripts/install-java8.sh"
+    node.vm.provision "shell", path: "vagrant_scripts/install-vpp.sh"
+    node.vm.provision "shell", path: "vagrant_scripts/configure-vpp.sh"
+    node.vm.provision "shell", path: "vagrant_scripts/install-hc.sh"
+    node.vm.provision "shell", path: "vagrant_scripts/install-odl.sh"
+
+    node.vm.network "private_network", ip: mgmt_ip
+    node.vm.network "private_network", type: "dhcp", auto_config: false, virtualbox__intnet: port1
+    node.vm.network "private_network", type: "dhcp", auto_config: false, virtualbox__intnet: port2
+    node.vm.provider "virtualbox" do |vb|
+      vb.memory = "4096"
+      vb.cpus = 4
+      vb.customize ["modifyvm", :id, "--ioapic", "on"]
+      vb.customize ["setextradata", :id, "VBoxInternal/CPUM/SSE4.1", "1"]
+      vb.customize ["setextradata", :id, "VBoxInternal/CPUM/SSE4.2", "1"]
+      vb.customize ["modifyvm", :id, "--nicpromisc3", "allow-all"]
+      vb.customize ["modifyvm", :id, "--nicpromisc4", "allow-all"]
+      vb.customize ["modifyvm", :id, "--nicpromisc5", "allow-all"]
+    end
+  end
+end
+
+# install required plugins if necessary
+if ARGV[0] == 'up'
+    # add required plugins here
+    required_plugins = %w( vagrant-vbguest vagrant-cachier)
+    missing_plugins = []
+    required_plugins.each do |plugin|
+        missing_plugins.push(plugin) unless Vagrant.has_plugin? plugin
+    end
+
+    if ! missing_plugins.empty?
+        install_these = missing_plugins.join(' ')
+        puts "Found missing plugins: #{install_these}.  Installing..."
+        cmd = "vagrant plugin install #{install_these}"
+        updateResult = system( cmd )
+        if updateResult
+            puts "Plugins #{install_these} installed."
+            #restart vagrant up process
+            exec "vagrant up"
+        else
+            abort("Failed to install plugins: #{install_these}.")
+        end
+    else
+        puts "No missing plugins. Ok to continue with vagrant setup."
+    end
+end
+
+Vagrant.configure(2) do |config|
+  # vagrant-cachier caches apt/yum etc to speed subsequent
+  # vagrant up
+  # to enable, run
+  # vagrant plugin install vagrant-cachier
+  #
+  if Vagrant.has_plugin?("vagrant-cachier")
+    config.cache.scope = :box
+  end
+
+  add_controller(config, "controller", "192.168.255.100/24", "public_net", "tenant_net",)
+  add_compute(config, "compute0", "192.168.255.101/24", "public_net", "tenant_net")
+  add_compute(config, "compute1", "192.168.255.102/24", "public_net", "tenant_net")
+end
diff --git a/demos/vpp-demo/local-demo-postman.json b/demos/vpp-demo/local-demo-postman.json
new file mode 100644 (file)
index 0000000..63a1924
--- /dev/null
@@ -0,0 +1,392 @@
+{
+       "id": "ca7e7994-e248-0de1-1b3c-27607ae374c5",
+       "name": "vpp-demo",
+       "description": "",
+       "order": [],
+       "folders": [
+               {
+                       "id": "66e85953-eba2-e686-1c05-181c21f139aa",
+                       "name": "LOCAL-DEMO",
+                       "description": "",
+                       "order": [
+                               "70504373-fc7c-5b0f-5136-1d6c21aa7477",
+                               "204cc3ef-6acb-da33-77be-c17a196575be",
+                               "5cb6fa84-3bc2-caad-185c-e7189b0b027c",
+                               "a15d7557-a4c4-7eb3-ccf9-45828a452a12",
+                               "170aaf4e-9cf5-cfcc-a761-78431b6e3709",
+                               "c8bff5bf-6435-5cac-7242-52b6be1a6b2f",
+                               "d43e3c11-32e3-b533-cf1e-935194987fb5",
+                               "83ab74ac-5748-d0b0-fc20-41218f1fbfc9",
+                               "f3e707bc-2e56-0c63-401a-af6d8cc89232",
+                               "f53c4509-ecec-e7b4-8d93-98494f84d5bc",
+                               "f48fb80a-f113-04ae-5e97-b1110f31aec0",
+                               "8e0cb982-4ca9-2492-2466-a52c8eeed90e",
+                               "9883b811-c54a-6204-91e9-e951483b0500",
+                               "a6008cfe-8f36-6a43-9464-87f55538768f",
+                               "d0c7ad28-aaac-2585-37c4-8ad1fb96b300",
+                               "812e3729-c9f3-e9bb-e15c-174073cf010c",
+                               "a1e303ba-25c2-f897-9be3-b5552eb7bc1c",
+                               "1b49eadb-b844-93ca-3839-4f5ca0eb8c73",
+                               "2031addb-3b81-d6d5-f5ad-995bc53767ab"
+                       ],
+                       "owner": "607119",
+                       "collectionId": "1752fb6e-edab-50e1-4840-11399dfc2e85"
+               }
+       ],
+       "timestamp": 1474356756372,
+       "owner": "607119",
+       "public": false,
+       "published": false,
+       "requests": [
+               {
+                       "id": "170aaf4e-9cf5-cfcc-a761-78431b6e3709",
+                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\n",
+                       "url": "http://192.168.255.100:8081/restconf/operational/renderer:renderers/renderer/vpp-renderer",
+                       "preRequestScript": null,
+                       "pathVariables": {},
+                       "method": "GET",
+                       "data": [],
+                       "dataMode": "params",
+                       "tests": null,
+                       "currentHelper": "normal",
+                       "helperAttributes": {},
+                       "time": 1473431626723,
+                       "name": "VPP renderer operational",
+                       "description": "",
+                       "collectionId": "ca7e7994-e248-0de1-1b3c-27607ae374c5",
+                       "folder": "66e85953-eba2-e686-1c05-181c21f139aa"
+               },
+               {
+                       "id": "1b49eadb-b844-93ca-3839-4f5ca0eb8c73",
+                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/json\nCache-Control: no-cache\n",
+                       "url": "http://192.168.255.100:8081/restconf/config/neutron:neutron",
+                       "preRequestScript": "",
+                       "pathVariables": {},
+                       "method": "PUT",
+                       "data": [],
+                       "dataMode": "raw",
+                       "tests": "",
+                       "currentHelper": "normal",
+                       "helperAttributes": {},
+                       "time": 1474359320383,
+                       "name": "neutron data - add secRules",
+                       "description": "",
+                       "collectionId": "ca7e7994-e248-0de1-1b3c-27607ae374c5",
+                       "rawModeData": "{\n  \"neutron\": {\n    \"networks\": {\n      \"network\": [\n        {\n          \"uuid\": \"e82a3ecf-bda8-4868-936e-494999edc0ba\",\n          \"name\": \"vxlannet\",\n          \"neutron-L3-ext:external\": false,\n          \"neutron-provider-ext:segmentation-id\": \"20\",\n          \"neutron-provider-ext:network-type\": \"neutron-networks:network-type-vxlan\",\n          \"admin-state-up\": true,\n          \"shared\": false,\n          \"status\": \"ACTIVE\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\"\n        }\n      ]\n    },\n    \"subnets\": {\n      \"subnet\": [\n        {\n          \"uuid\": \"3d1158f1-540b-4139-81a6-4dbbb3dae1e5\",\n          \"ip-version\": \"neutron-constants:ip-version-v4\",\n          \"gateway-ip\": \"10.11.12.1\",\n          \"name\": \"vxlansubnet\",\n          \"network-id\": \"e82a3ecf-bda8-4868-936e-494999edc0ba\",\n          \"cidr\": \"10.11.12.0/24\",\n          \"enable-dhcp\": true,\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\n          \"allocation-pools\": [\n            {\n              \"start\": \"10.11.12.2\",\n              \"end\": \"10.11.12.254\"\n            }\n          ]\n        }\n      ]\n    },\n    \"security-groups\": {\n      \"security-group\": [\n        {\n          \"uuid\": \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\",\n          \"name\": \"default\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\"\n        },\n        {\n          \"uuid\": \"282f7ee8-7b75-4237-9e80-d41647969e8f\",\n          \"name\": \"test-secgroup\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\"\n        }\n      ]\n    },\n    \"security-rules\": {\n      \"security-rule\": [\n        {\n          \"uuid\": \"7d037f8c-e35d-4f34-b2a8-6e6912728498\",\n          \"direction\": \"neutron-constants:direction-ingress\",\n          \"security-group-id\": \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\",\n          \"ethertype\": \"neutron-constants:ethertype-v4\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\n          \"remote-group-id\": \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\"\n        },\n        {\n          \"uuid\": \"b547e0ad-1fe9-4605-8a1d-a146b3316f3e\",\n          \"remote-ip-prefix\": \"0.0.0.0/0\",\n          \"ethertype\": \"neutron-constants:ethertype-v4\",\n          \"port-range-max\": 22,\n          \"protocol\": \"neutron-constants:protocol-tcp\",\n          \"port-range-min\": 22,\n          \"direction\": \"neutron-constants:direction-ingress\",\n          \"security-group-id\": \"282f7ee8-7b75-4237-9e80-d41647969e8f\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\"\n        },\n        {\n          \"uuid\": \"b5fb268c-54d1-4f1e-8a6c-cb248fc57278\",\n          \"direction\": \"neutron-constants:direction-ingress\",\n          \"security-group-id\": \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\",\n          \"ethertype\": \"neutron-constants:ethertype-v6\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\n          \"remote-group-id\": \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\"\n        },\n        {\n          \"uuid\": \"e7e07939-8962-4e3c-a056-ddbb83a36d7f\",\n          \"direction\": \"neutron-constants:direction-egress\",\n          \"security-group-id\": \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\",\n          \"ethertype\": \"neutron-constants:ethertype-v4\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\"\n        },\n        {\n          \"uuid\": \"efd160f9-8383-4d42-ab35-201d898fd87e\",\n          \"direction\": \"neutron-constants:direction-egress\",\n          \"security-group-id\": \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\",\n          \"ethertype\": \"neutron-constants:ethertype-v6\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\"\n        },\n        {\n          \"uuid\": \"d4111847-3d13-4dc3-9433-78bae7ee6dc1\",\n          \"remote-ip-prefix\": \"0.0.0.0/0\",\n          \"ethertype\": \"neutron-constants:ethertype-v4\",\n          \"protocol\": \"neutron-constants:protocol-icmp\",\n          \"direction\": \"neutron-constants:direction-ingress\",\n          \"security-group-id\": \"282f7ee8-7b75-4237-9e80-d41647969e8f\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\"\n        }\n      ]\n    },\n    \"ports\": {\n      \"port\": [\n        {\n          \"uuid\": \"6a616da7-d1ba-45c1-80bd-ca5e3fa0edfc\",\n          \"device-owner\": \"network:router_interface\",\n          \"admin-state-up\": true,\n          \"name\": \"\",\n          \"fixed-ips\": [\n            {\n              \"subnet-id\": \"3d1158f1-540b-4139-81a6-4dbbb3dae1e5\",\n              \"ip-address\": \"10.11.12.1\"\n            }\n          ],\n          \"network-id\": \"e82a3ecf-bda8-4868-936e-494999edc0ba\",\n          \"neutron-binding:vnic-type\": \"normal\",\n          \"neutron-binding:host-id\": \"controller\",\n          \"neutron-binding:vif-details\": [\n            {\n              \"details-key\": \"port_filter\",\n              \"value\": \"true\"\n            }\n          ],\n          \"neutron-binding:vif-type\": \"vhostuser\",\n          \"device-id\": \"3a1fd562-6423-4bbd-89f0-6130ebb96e92\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\n          \"mac-address\": \"fa:16:3e:4c:11:20\",\n          \"security-groups\": [\n            \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\"\n          ],\n          \"neutron-portsecurity:port-security-enabled\": false\n        },\n        {\n          \"uuid\": \"a9607d99-0afa-41cc-8f2f-8d62b6e9bc1c\",\n          \"device-owner\": \"network:dhcp\",\n          \"admin-state-up\": true,\n          \"name\": \"vm-0-1-port\",\n          \"fixed-ips\": [\n            {\n              \"subnet-id\": \"3d1158f1-540b-4139-81a6-4dbbb3dae1e5\",\n              \"ip-address\": \"10.11.12.3\"\n            }\n          ],\n          \"network-id\": \"e82a3ecf-bda8-4868-936e-494999edc0ba\",\n          \"neutron-binding:vnic-type\": \"normal\",\n          \"neutron-binding:host-id\": \"compute0\",\n          \"neutron-binding:vif-details\": [\n            {\n              \"details-key\": \"port_filter\",\n              \"value\": \"true\"\n            }\n          ],\n          \"neutron-binding:vif-type\": \"vhostuser\",\n          \"device-id\": \"6b87c96a-8f3f-451f-a3d7-200b01d80744\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\n          \"mac-address\": \"fa:16:3e:4c:fd:34\",\n          \"security-groups\": [\n            \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\"\n          ],\n          \"neutron-portsecurity:port-security-enabled\": true\n        },\n        {\n          \"uuid\": \"320c792a-40b8-4d42-b7e3-60d998f6631a\",\n          \"device-owner\": \"network:dhcp\",\n          \"admin-state-up\": true,\n          \"name\": \"vm-1-3-port\",\n          \"fixed-ips\": [\n            {\n              \"subnet-id\": \"3d1158f1-540b-4139-81a6-4dbbb3dae1e5\",\n              \"ip-address\": \"10.11.12.7\"\n            }\n          ],\n          \"network-id\": \"e82a3ecf-bda8-4868-936e-494999edc0ba\",\n          \"neutron-binding:vnic-type\": \"normal\",\n          \"neutron-binding:host-id\": \"compute1\",\n          \"neutron-binding:vif-details\": [\n            {\n              \"details-key\": \"port_filter\",\n              \"value\": \"true\"\n            }\n          ],\n          \"neutron-binding:vif-type\": \"vhostuser\",\n          \"device-id\": \"e0074476-de99-47c9-81d9-c2e55e9aaa56\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\n          \"mac-address\": \"fa:16:3e:83:a5:7f\",\n          \"security-groups\": [\n            \"282f7ee8-7b75-4237-9e80-d41647969e8f\",\n            \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\"\n          ],\n          \"neutron-portsecurity:port-security-enabled\": true\n        },\n        {\n          \"uuid\": \"8def6a66-7d70-4459-adc4-b189717441b4\",\n          \"device-owner\": \"network:dhcp\",\n          \"admin-state-up\": true,\n          \"name\": \"vm-0-2-port\",\n          \"fixed-ips\": [\n            {\n              \"subnet-id\": \"3d1158f1-540b-4139-81a6-4dbbb3dae1e5\",\n              \"ip-address\": \"10.11.12.4\"\n            }\n          ],\n          \"network-id\": \"e82a3ecf-bda8-4868-936e-494999edc0ba\",\n          \"neutron-binding:vnic-type\": \"normal\",\n          \"neutron-binding:host-id\": \"compute0\",\n          \"neutron-binding:vif-details\": [\n            {\n              \"details-key\": \"port_filter\",\n              \"value\": \"true\"\n            }\n          ],\n          \"neutron-binding:vif-type\": \"vhostuser\",\n          \"device-id\": \"6e85b372-9269-4f96-8049-f6cccdaf340c\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\n          \"mac-address\": \"fa:16:3e:c7:76:82\",\n          \"security-groups\": [\n            \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\"\n          ],\n          \"neutron-portsecurity:port-security-enabled\": true\n        },\n        {\n          \"uuid\": \"7415f153-2a26-4968-880d-3aba22cf6f9d\",\n          \"device-owner\": \"network:dhcp\",\n          \"admin-state-up\": true,\n          \"name\": \"vm-1-1-port\",\n          \"fixed-ips\": [\n            {\n              \"subnet-id\": \"3d1158f1-540b-4139-81a6-4dbbb3dae1e5\",\n              \"ip-address\": \"10.11.12.5\"\n            }\n          ],\n          \"network-id\": \"e82a3ecf-bda8-4868-936e-494999edc0ba\",\n          \"neutron-binding:vnic-type\": \"normal\",\n          \"neutron-binding:host-id\": \"compute1\",\n          \"neutron-binding:vif-details\": [\n            {\n              \"details-key\": \"port_filter\",\n              \"value\": \"true\"\n            }\n          ],\n          \"neutron-binding:vif-type\": \"vhostuser\",\n          \"device-id\": \"565c0e5f-515a-457b-ae89-857c3f66296a\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\n          \"mac-address\": \"fa:16:3e:6f:d4:3c\",\n          \"security-groups\": [\n            \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\"\n          ],\n          \"neutron-portsecurity:port-security-enabled\": true\n        },\n        {\n          \"uuid\": \"fa943a17-ace1-41a6-80ee-3fa292d2d320\",\n          \"device-owner\": \"network:dhcp\",\n          \"admin-state-up\": true,\n          \"name\": \"vm-1-2-port\",\n          \"fixed-ips\": [\n            {\n              \"subnet-id\": \"3d1158f1-540b-4139-81a6-4dbbb3dae1e5\",\n              \"ip-address\": \"10.11.12.6\"\n            }\n          ],\n          \"network-id\": \"e82a3ecf-bda8-4868-936e-494999edc0ba\",\n          \"neutron-binding:vnic-type\": \"normal\",\n          \"neutron-binding:host-id\": \"compute1\",\n          \"neutron-binding:vif-details\": [\n            {\n              \"details-key\": \"port_filter\",\n              \"value\": \"true\"\n            }\n          ],\n          \"neutron-binding:vif-type\": \"vhostuser\",\n          \"device-id\": \"945b82f4-07a9-4442-aa64-d3cc34cfb64d\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\n          \"mac-address\": \"fa:16:3e:ec:3a:40\",\n          \"security-groups\": [\n            \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\"\n          ],\n          \"neutron-portsecurity:port-security-enabled\": true\n        },\n        {\n          \"uuid\": \"c6076003-2b5c-4487-9db6-f2667a2c276e\",\n          \"device-owner\": \"network:dhcp\",\n          \"admin-state-up\": true,\n          \"name\": \"\",\n          \"fixed-ips\": [\n            {\n              \"subnet-id\": \"3d1158f1-540b-4139-81a6-4dbbb3dae1e5\",\n              \"ip-address\": \"10.11.12.2\"\n            }\n          ],\n          \"network-id\": \"e82a3ecf-bda8-4868-936e-494999edc0ba\",\n          \"neutron-binding:vnic-type\": \"normal\",\n          \"neutron-binding:host-id\": \"controller\",\n          \"neutron-binding:vif-details\": [\n            {\n              \"details-key\": \"port_filter\",\n              \"value\": \"true\"\n            }\n          ],\n          \"neutron-binding:vif-type\": \"vhostuser\",\n          \"device-id\": \"dhcp827da361-9c56-50f7-913f-5a01f7bfed2c-e82a3ecf-bda8-4868-936e-494999edc0ba\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\n          \"mac-address\": \"fa:16:3e:bc:6b:e2\",\n          \"security-groups\": [\n            \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\"\n          ],\n          \"neutron-portsecurity:port-security-enabled\": false\n        }\n      ]\n    }\n  }\n}"
+               },
+               {
+                       "id": "2031addb-3b81-d6d5-f5ad-995bc53767ab",
+                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/json\nCache-Control: no-cache\n",
+                       "url": "http://192.168.255.100:8081/restconf/config/neutron:neutron",
+                       "preRequestScript": "",
+                       "pathVariables": {},
+                       "method": "PUT",
+                       "data": [],
+                       "dataMode": "raw",
+                       "tests": "",
+                       "currentHelper": "normal",
+                       "helperAttributes": {},
+                       "time": 1474359561648,
+                       "name": "neutron data - delete secRules",
+                       "description": "",
+                       "collectionId": "ca7e7994-e248-0de1-1b3c-27607ae374c5",
+                       "rawModeData": "{\n  \"neutron\": {\n    \"networks\": {\n      \"network\": [\n        {\n          \"uuid\": \"e82a3ecf-bda8-4868-936e-494999edc0ba\",\n          \"name\": \"vxlannet\",\n          \"neutron-L3-ext:external\": false,\n          \"neutron-provider-ext:segmentation-id\": \"20\",\n          \"neutron-provider-ext:network-type\": \"neutron-networks:network-type-vxlan\",\n          \"admin-state-up\": true,\n          \"shared\": false,\n          \"status\": \"ACTIVE\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\"\n        }\n      ]\n    },\n    \"subnets\": {\n      \"subnet\": [\n        {\n          \"uuid\": \"3d1158f1-540b-4139-81a6-4dbbb3dae1e5\",\n          \"ip-version\": \"neutron-constants:ip-version-v4\",\n          \"gateway-ip\": \"10.11.12.1\",\n          \"name\": \"vxlansubnet\",\n          \"network-id\": \"e82a3ecf-bda8-4868-936e-494999edc0ba\",\n          \"cidr\": \"10.11.12.0/24\",\n          \"enable-dhcp\": true,\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\n          \"allocation-pools\": [\n            {\n              \"start\": \"10.11.12.2\",\n              \"end\": \"10.11.12.254\"\n            }\n          ]\n        }\n      ]\n    },\n    \"security-groups\": {\n      \"security-group\": [\n        {\n          \"uuid\": \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\",\n          \"name\": \"default\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\"\n        }\n      ]\n    },\n    \"security-rules\": {\n      \"security-rule\": [\n        {\n          \"uuid\": \"7d037f8c-e35d-4f34-b2a8-6e6912728498\",\n          \"direction\": \"neutron-constants:direction-ingress\",\n          \"security-group-id\": \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\",\n          \"ethertype\": \"neutron-constants:ethertype-v4\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\n          \"remote-group-id\": \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\"\n        },\n        {\n          \"uuid\": \"b5fb268c-54d1-4f1e-8a6c-cb248fc57278\",\n          \"direction\": \"neutron-constants:direction-ingress\",\n          \"security-group-id\": \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\",\n          \"ethertype\": \"neutron-constants:ethertype-v6\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\n          \"remote-group-id\": \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\"\n        },\n        {\n          \"uuid\": \"46372963-221d-48d6-9074-724d72caae40\",\n          \"direction\": \"neutron-constants:direction-egress\",\n          \"security-group-id\": \"282f7ee8-7b75-4237-9e80-d41647969e8f\",\n          \"ethertype\": \"neutron-constants:ethertype-v6\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\"\n        },\n        {\n          \"uuid\": \"e7e07939-8962-4e3c-a056-ddbb83a36d7f\",\n          \"direction\": \"neutron-constants:direction-egress\",\n          \"security-group-id\": \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\",\n          \"ethertype\": \"neutron-constants:ethertype-v4\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\"\n        },\n        {\n          \"uuid\": \"efd160f9-8383-4d42-ab35-201d898fd87e\",\n          \"direction\": \"neutron-constants:direction-egress\",\n          \"security-group-id\": \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\",\n          \"ethertype\": \"neutron-constants:ethertype-v6\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\"\n        },\n        {\n          \"uuid\": \"a876726e-6522-4fab-b63a-c991ffd963dd\",\n          \"direction\": \"neutron-constants:direction-egress\",\n          \"security-group-id\": \"282f7ee8-7b75-4237-9e80-d41647969e8f\",\n          \"ethertype\": \"neutron-constants:ethertype-v4\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\"\n        }\n      ]\n    },\n    \"ports\": {\n      \"port\": [\n        {\n          \"uuid\": \"6a616da7-d1ba-45c1-80bd-ca5e3fa0edfc\",\n          \"device-owner\": \"network:router_interface\",\n          \"admin-state-up\": true,\n          \"name\": \"\",\n          \"fixed-ips\": [\n            {\n              \"subnet-id\": \"3d1158f1-540b-4139-81a6-4dbbb3dae1e5\",\n              \"ip-address\": \"10.11.12.1\"\n            }\n          ],\n          \"network-id\": \"e82a3ecf-bda8-4868-936e-494999edc0ba\",\n          \"neutron-binding:vnic-type\": \"normal\",\n          \"neutron-binding:host-id\": \"controller\",\n          \"neutron-binding:vif-details\": [\n            {\n              \"details-key\": \"port_filter\",\n              \"value\": \"true\"\n            }\n          ],\n          \"neutron-binding:vif-type\": \"vhostuser\",\n          \"device-id\": \"3a1fd562-6423-4bbd-89f0-6130ebb96e92\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\n          \"mac-address\": \"fa:16:3e:4c:11:20\",\n          \"security-groups\": [\n            \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\"\n          ],\n          \"neutron-portsecurity:port-security-enabled\": false\n        },\n        {\n          \"uuid\": \"a9607d99-0afa-41cc-8f2f-8d62b6e9bc1c\",\n          \"device-owner\": \"network:dhcp\",\n          \"admin-state-up\": true,\n          \"name\": \"vm-0-1-port\",\n          \"fixed-ips\": [\n            {\n              \"subnet-id\": \"3d1158f1-540b-4139-81a6-4dbbb3dae1e5\",\n              \"ip-address\": \"10.11.12.3\"\n            }\n          ],\n          \"network-id\": \"e82a3ecf-bda8-4868-936e-494999edc0ba\",\n          \"neutron-binding:vnic-type\": \"normal\",\n          \"neutron-binding:host-id\": \"compute0\",\n          \"neutron-binding:vif-details\": [\n            {\n              \"details-key\": \"port_filter\",\n              \"value\": \"true\"\n            }\n          ],\n          \"neutron-binding:vif-type\": \"vhostuser\",\n          \"device-id\": \"6b87c96a-8f3f-451f-a3d7-200b01d80744\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\n          \"mac-address\": \"fa:16:3e:4c:fd:34\",\n          \"security-groups\": [\n            \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\"\n          ],\n          \"neutron-portsecurity:port-security-enabled\": true\n        },\n        {\n          \"uuid\": \"320c792a-40b8-4d42-b7e3-60d998f6631a\",\n          \"device-owner\": \"network:dhcp\",\n          \"admin-state-up\": true,\n          \"name\": \"vm-1-3-port\",\n          \"fixed-ips\": [\n            {\n              \"subnet-id\": \"3d1158f1-540b-4139-81a6-4dbbb3dae1e5\",\n              \"ip-address\": \"10.11.12.7\"\n            }\n          ],\n          \"network-id\": \"e82a3ecf-bda8-4868-936e-494999edc0ba\",\n          \"neutron-binding:vnic-type\": \"normal\",\n          \"neutron-binding:host-id\": \"compute1\",\n          \"neutron-binding:vif-details\": [\n            {\n              \"details-key\": \"port_filter\",\n              \"value\": \"true\"\n            }\n          ],\n          \"neutron-binding:vif-type\": \"vhostuser\",\n          \"device-id\": \"e0074476-de99-47c9-81d9-c2e55e9aaa56\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\n          \"mac-address\": \"fa:16:3e:83:a5:7f\",\n          \"security-groups\": [\n            \"282f7ee8-7b75-4237-9e80-d41647969e8f\",\n            \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\"\n          ],\n          \"neutron-portsecurity:port-security-enabled\": true\n        },\n        {\n          \"uuid\": \"8def6a66-7d70-4459-adc4-b189717441b4\",\n          \"device-owner\": \"network:dhcp\",\n          \"admin-state-up\": true,\n          \"name\": \"vm-0-2-port\",\n          \"fixed-ips\": [\n            {\n              \"subnet-id\": \"3d1158f1-540b-4139-81a6-4dbbb3dae1e5\",\n              \"ip-address\": \"10.11.12.4\"\n            }\n          ],\n          \"network-id\": \"e82a3ecf-bda8-4868-936e-494999edc0ba\",\n          \"neutron-binding:vnic-type\": \"normal\",\n          \"neutron-binding:host-id\": \"compute0\",\n          \"neutron-binding:vif-details\": [\n            {\n              \"details-key\": \"port_filter\",\n              \"value\": \"true\"\n            }\n          ],\n          \"neutron-binding:vif-type\": \"vhostuser\",\n          \"device-id\": \"6e85b372-9269-4f96-8049-f6cccdaf340c\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\n          \"mac-address\": \"fa:16:3e:c7:76:82\",\n          \"security-groups\": [\n            \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\"\n          ],\n          \"neutron-portsecurity:port-security-enabled\": true\n        },\n        {\n          \"uuid\": \"7415f153-2a26-4968-880d-3aba22cf6f9d\",\n          \"device-owner\": \"network:dhcp\",\n          \"admin-state-up\": true,\n          \"name\": \"vm-1-1-port\",\n          \"fixed-ips\": [\n            {\n              \"subnet-id\": \"3d1158f1-540b-4139-81a6-4dbbb3dae1e5\",\n              \"ip-address\": \"10.11.12.5\"\n            }\n          ],\n          \"network-id\": \"e82a3ecf-bda8-4868-936e-494999edc0ba\",\n          \"neutron-binding:vnic-type\": \"normal\",\n          \"neutron-binding:host-id\": \"compute1\",\n          \"neutron-binding:vif-details\": [\n            {\n              \"details-key\": \"port_filter\",\n              \"value\": \"true\"\n            }\n          ],\n          \"neutron-binding:vif-type\": \"vhostuser\",\n          \"device-id\": \"565c0e5f-515a-457b-ae89-857c3f66296a\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\n          \"mac-address\": \"fa:16:3e:6f:d4:3c\",\n          \"security-groups\": [\n            \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\"\n          ],\n          \"neutron-portsecurity:port-security-enabled\": true\n        },\n        {\n          \"uuid\": \"fa943a17-ace1-41a6-80ee-3fa292d2d320\",\n          \"device-owner\": \"network:dhcp\",\n          \"admin-state-up\": true,\n          \"name\": \"vm-1-2-port\",\n          \"fixed-ips\": [\n            {\n              \"subnet-id\": \"3d1158f1-540b-4139-81a6-4dbbb3dae1e5\",\n              \"ip-address\": \"10.11.12.6\"\n            }\n          ],\n          \"network-id\": \"e82a3ecf-bda8-4868-936e-494999edc0ba\",\n          \"neutron-binding:vnic-type\": \"normal\",\n          \"neutron-binding:host-id\": \"compute1\",\n          \"neutron-binding:vif-details\": [\n            {\n              \"details-key\": \"port_filter\",\n              \"value\": \"true\"\n            }\n          ],\n          \"neutron-binding:vif-type\": \"vhostuser\",\n          \"device-id\": \"945b82f4-07a9-4442-aa64-d3cc34cfb64d\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\n          \"mac-address\": \"fa:16:3e:ec:3a:40\",\n          \"security-groups\": [\n            \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\"\n          ],\n          \"neutron-portsecurity:port-security-enabled\": true\n        },\n        {\n          \"uuid\": \"c6076003-2b5c-4487-9db6-f2667a2c276e\",\n          \"device-owner\": \"network:dhcp\",\n          \"admin-state-up\": true,\n          \"name\": \"\",\n          \"fixed-ips\": [\n            {\n              \"subnet-id\": \"3d1158f1-540b-4139-81a6-4dbbb3dae1e5\",\n              \"ip-address\": \"10.11.12.2\"\n            }\n          ],\n          \"network-id\": \"e82a3ecf-bda8-4868-936e-494999edc0ba\",\n          \"neutron-binding:vnic-type\": \"normal\",\n          \"neutron-binding:host-id\": \"controller\",\n          \"neutron-binding:vif-details\": [\n            {\n              \"details-key\": \"port_filter\",\n              \"value\": \"true\"\n            }\n          ],\n          \"neutron-binding:vif-type\": \"vhostuser\",\n          \"device-id\": \"dhcp827da361-9c56-50f7-913f-5a01f7bfed2c-e82a3ecf-bda8-4868-936e-494999edc0ba\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\n          \"mac-address\": \"fa:16:3e:bc:6b:e2\",\n          \"security-groups\": [\n            \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\"\n          ],\n          \"neutron-portsecurity:port-security-enabled\": false\n        }\n      ]\n    }\n  }\n}"
+               },
+               {
+                       "id": "204cc3ef-6acb-da33-77be-c17a196575be",
+                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/xml\n",
+                       "url": "http://192.168.255.100:8081/restconf/config/network-topology:network-topology/topology/topology-netconf/node/compute0",
+                       "preRequestScript": null,
+                       "pathVariables": {},
+                       "method": "PUT",
+                       "data": [],
+                       "dataMode": "raw",
+                       "tests": null,
+                       "currentHelper": "normal",
+                       "helperAttributes": {},
+                       "time": 1473431590397,
+                       "name": "Register VPP compute0",
+                       "description": "",
+                       "collectionId": "ca7e7994-e248-0de1-1b3c-27607ae374c5",
+                       "folder": "66e85953-eba2-e686-1c05-181c21f139aa",
+                       "rawModeData": "<node xmlns=\"urn:TBD:params:xml:ns:yang:network-topology\">\n   <node-id>compute0</node-id>\n   <host xmlns=\"urn:opendaylight:netconf-node-topology\">192.168.255.101</host>\n   <port xmlns=\"urn:opendaylight:netconf-node-topology\">2831</port>\n   <username xmlns=\"urn:opendaylight:netconf-node-topology\">admin</username>\n   <password xmlns=\"urn:opendaylight:netconf-node-topology\">admin</password>\n   <tcp-only xmlns=\"urn:opendaylight:netconf-node-topology\">false</tcp-only>\n   <keepalive-delay xmlns=\"urn:opendaylight:netconf-node-topology\">0</keepalive-delay>\n</node>"
+               },
+               {
+                       "id": "5cb6fa84-3bc2-caad-185c-e7189b0b027c",
+                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/xml\n",
+                       "url": "http://192.168.255.100:8081/restconf/config/network-topology:network-topology/topology/topology-netconf/node/compute1",
+                       "preRequestScript": null,
+                       "pathVariables": {},
+                       "method": "PUT",
+                       "data": [],
+                       "dataMode": "raw",
+                       "tests": null,
+                       "currentHelper": "normal",
+                       "helperAttributes": {},
+                       "time": 1473431598691,
+                       "name": "Register VPP compute1",
+                       "description": "",
+                       "collectionId": "ca7e7994-e248-0de1-1b3c-27607ae374c5",
+                       "folder": "66e85953-eba2-e686-1c05-181c21f139aa",
+                       "rawModeData": "<node xmlns=\"urn:TBD:params:xml:ns:yang:network-topology\">\n   <node-id>compute1</node-id>\n   <host xmlns=\"urn:opendaylight:netconf-node-topology\">192.168.255.102</host>\n   <port xmlns=\"urn:opendaylight:netconf-node-topology\">2831</port>\n   <username xmlns=\"urn:opendaylight:netconf-node-topology\">admin</username>\n   <password xmlns=\"urn:opendaylight:netconf-node-topology\">admin</password>\n   <tcp-only xmlns=\"urn:opendaylight:netconf-node-topology\">false</tcp-only>\n   <keepalive-delay xmlns=\"urn:opendaylight:netconf-node-topology\">0</keepalive-delay>\n</node>"
+               },
+               {
+                       "id": "70504373-fc7c-5b0f-5136-1d6c21aa7477",
+                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/xml\n",
+                       "url": "http://192.168.255.100:8081/restconf/config/network-topology:network-topology/topology/topology-netconf/node/controller",
+                       "preRequestScript": null,
+                       "pathVariables": {},
+                       "method": "PUT",
+                       "data": [],
+                       "dataMode": "raw",
+                       "tests": null,
+                       "currentHelper": "normal",
+                       "helperAttributes": {},
+                       "time": 1473431552143,
+                       "name": "Register VPP controller",
+                       "description": "",
+                       "collectionId": "ca7e7994-e248-0de1-1b3c-27607ae374c5",
+                       "folder": "66e85953-eba2-e686-1c05-181c21f139aa",
+                       "rawModeData": "<node xmlns=\"urn:TBD:params:xml:ns:yang:network-topology\">\n   <node-id>controller</node-id>\n   <host xmlns=\"urn:opendaylight:netconf-node-topology\">192.168.255.100</host>\n   <port xmlns=\"urn:opendaylight:netconf-node-topology\">2831</port>\n   <username xmlns=\"urn:opendaylight:netconf-node-topology\">admin</username>\n   <password xmlns=\"urn:opendaylight:netconf-node-topology\">admin</password>\n   <tcp-only xmlns=\"urn:opendaylight:netconf-node-topology\">false</tcp-only>\n   <keepalive-delay xmlns=\"urn:opendaylight:netconf-node-topology\">0</keepalive-delay>\n</node>"
+               },
+               {
+                       "id": "812e3729-c9f3-e9bb-e15c-174073cf010c",
+                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\n",
+                       "url": "http://192.168.255.100:8181/restconf/operational/policy:tenants",
+                       "preRequestScript": "",
+                       "pathVariables": {},
+                       "method": "GET",
+                       "data": [],
+                       "dataMode": "params",
+                       "tests": "",
+                       "currentHelper": "normal",
+                       "helperAttributes": {},
+                       "time": 1472628948816,
+                       "name": "get tenants operational",
+                       "description": "",
+                       "collectionId": "ca7e7994-e248-0de1-1b3c-27607ae374c5",
+                       "folder": "66e85953-eba2-e686-1c05-181c21f139aa"
+               },
+               {
+                       "id": "83ab74ac-5748-d0b0-fc20-41218f1fbfc9",
+                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\n",
+                       "url": "http://192.168.255.100:8181/restconf/operational/network-topology:network-topology/topology/36e1c19e-e2f5-4c83-a5af-125cb2af0419",
+                       "preRequestScript": null,
+                       "pathVariables": {},
+                       "method": "GET",
+                       "data": null,
+                       "dataMode": "params",
+                       "tests": null,
+                       "currentHelper": "normal",
+                       "helperAttributes": {},
+                       "time": 1472628223007,
+                       "name": "read BD operational",
+                       "description": "",
+                       "collectionId": "ca7e7994-e248-0de1-1b3c-27607ae374c5",
+                       "folder": "66e85953-eba2-e686-1c05-181c21f139aa"
+               },
+               {
+                       "id": "8e0cb982-4ca9-2492-2466-a52c8eeed90e",
+                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\n",
+                       "url": "http://192.168.255.100:8181/restconf/config/endpoint-location-provider:location-providers/location-provider/VPP endpoint location provider",
+                       "preRequestScript": null,
+                       "pathVariables": {},
+                       "method": "GET",
+                       "data": null,
+                       "dataMode": "params",
+                       "tests": null,
+                       "currentHelper": "normal",
+                       "helperAttributes": {},
+                       "time": 1472628617084,
+                       "name": "vpp location provider config",
+                       "description": "",
+                       "collectionId": "ca7e7994-e248-0de1-1b3c-27607ae374c5",
+                       "folder": "66e85953-eba2-e686-1c05-181c21f139aa"
+               },
+               {
+                       "id": "9883b811-c54a-6204-91e9-e951483b0500",
+                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/yang.data+json\nCache-Control: no-cache\n",
+                       "url": "http://192.168.255.100:8181/restconf/config/forwarding:forwarding",
+                       "preRequestScript": "",
+                       "pathVariables": {},
+                       "method": "GET",
+                       "data": [],
+                       "dataMode": "raw",
+                       "tests": "",
+                       "currentHelper": "normal",
+                       "helperAttributes": {},
+                       "time": 1472628956384,
+                       "name": "forwarding operational",
+                       "description": "",
+                       "collectionId": "ca7e7994-e248-0de1-1b3c-27607ae374c5",
+                       "folder": "66e85953-eba2-e686-1c05-181c21f139aa",
+                       "rawModeData": "{\n    \"forwarding\": \n    {\n        \"forwarding-by-tenant\": [\n            {\n                \"tenant-id\": \"tenant-vpp\",\n                \"forwarding-context\": [\n                    {\n                        \"context-type\": \"l2-l3-forwarding:l3-context\",\n                        \"context-id\": \"l3-context-vrf-vpp\"\n                    },\n                    {\n                        \"context-type\": \"l2-l3-forwarding:l2-bridge-domain\",\n                        \"context-id\": \"bridge-domain-1\",\n                        \"parent\": {\n                            \"context-type\": \"l2-l3-forwarding:l3-context\",\n                            \"context-id\": \"l3-context-vrf-vpp\"\n                        }\n                    },\n                    {\n                        \"context-type\": \"l2-l3-forwarding:l2-flood-domain\",\n                        \"context-id\": \"flood-domain-1\",\n                        \"parent\": {\n                            \"context-type\": \"l2-l3-forwarding:l2-bridge-domain\",\n                            \"context-id\": \"bridge-domain-1\"\n                        }\n                    },\n                    {\n                        \"context-type\": \"l2-l3-forwarding:l2-flood-domain\",\n                        \"context-id\": \"flood-domain-2\",\n                        \"parent\": {\n                            \"context-type\": \"l2-l3-forwarding:l2-bridge-domain\",\n                            \"context-id\": \"bridge-domain-1\"\n                        }\n                    }\n                ],\n                \"network-domain\": [\n                    {\n                        \"network-domain-type\": \"l2-l3-forwarding:subnet\",\n                        \"network-domain-id\": \"subnet-10.0.35.0/24\",\n                        \"parent\": {\n                            \"context-type\": \"l2-l3-forwarding:l2-flood-domain\",\n                            \"context-id\": \"flood-domain-1\"\n                        },\n                        \"l2-l3-forwarding:subnet\": {\n                            \"ip-prefix\": \"10.0.35.0/24\",\n                            \"virtual-router-ip\": \"10.0.35.1\"\n                        }\n                    },\n                    {\n                        \"network-domain-type\": \"l2-l3-forwarding:subnet\",\n                        \"network-domain-id\": \"subnet-10.0.36.0/24\",\n                        \"parent\": {\n                            \"context-type\": \"l2-l3-forwarding:l2-flood-domain\",\n                            \"context-id\": \"flood-domain-2\"\n                        },\n                        \"l2-l3-forwarding:subnet\": {\n                            \"ip-prefix\": \"10.0.36.0/24\",\n                            \"virtual-router-ip\": \"10.0.36.1\"\n                        }\n                    }\n                ]\n            }\n        ]\n    }\n}"
+               },
+               {
+                       "id": "a15d7557-a4c4-7eb3-ccf9-45828a452a12",
+                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/json\nCache-Control: no-cache\n",
+                       "url": "http://192.168.255.100:8181/restconf/config/neutron:neutron",
+                       "preRequestScript": "",
+                       "pathVariables": {},
+                       "method": "PUT",
+                       "data": [],
+                       "dataMode": "raw",
+                       "tests": "",
+                       "currentHelper": "normal",
+                       "helperAttributes": {},
+                       "time": 1472570469355,
+                       "name": "neutron data ",
+                       "description": "",
+                       "collectionId": "ca7e7994-e248-0de1-1b3c-27607ae374c5",
+                       "folder": "66e85953-eba2-e686-1c05-181c21f139aa",
+                       "rawModeData": "{\r\n    \"neutron\": {\r\n        \"networks\": {\r\n            \"network\": [\r\n                {\r\n                    \"admin-state-up\": true,\r\n                    \"name\": \"vxlannet\",\r\n                    \"neutron-L3-ext:external\": false,\r\n                    \"neutron-provider-ext:network-type\": \"neutron-networks:network-type-vxlan\",\r\n                    \"neutron-provider-ext:segmentation-id\": \"1\",\r\n                    \"shared\": false,\r\n                    \"status\": \"ACTIVE\",\r\n                    \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\r\n                    \"uuid\": \"adc1b0ba-cb45-4d90-bdbd-50ec29450e7f\"\r\n                }\r\n            ]\r\n        },\r\n        \"ports\": {\r\n            \"port\": [\r\n                {\r\n                    \"admin-state-up\": true,\r\n                    \"device-id\": \"fc7035c3-8fbb-4786-b170-b9a0dc333ea5\",\r\n                    \"device-owner\": \"network:dhcp\",\r\n                    \"fixed-ips\": [\r\n                        {\r\n                            \"ip-address\": \"10.11.12.4\",\r\n                            \"subnet-id\": \"4aef69db-e3f8-4830-8979-888e6c461f9a\"\r\n                        }\r\n                    ],\r\n                    \"mac-address\": \"fa:16:3e:80:3a:56\",\r\n                    \"name\": \"vm-compute-0-2-port\",\r\n                    \"network-id\": \"adc1b0ba-cb45-4d90-bdbd-50ec29450e7f\",\r\n                    \"neutron-binding:host-id\": \"compute0\",\r\n                    \"neutron-binding:vif-details\": [\r\n                        {\r\n                            \"details-key\": \"port_filter\",\r\n                            \"value\": \"true\"\r\n                        }\r\n                    ],\r\n                    \"neutron-binding:vif-type\": \"vhostuser\",\r\n                    \"neutron-binding:vnic-type\": \"normal\",\r\n                    \"neutron-portsecurity:port-security-enabled\": true,\r\n                    \"security-groups\": [\r\n                        \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\"\r\n                    ],\r\n                    \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\r\n                    \"uuid\": \"d2bc9876-18e0-4e29-ba6a-22012ae0e4b1\"\r\n                },\r\n                {\r\n                    \"admin-state-up\": true,\r\n                    \"device-id\": \"42ae3bd2-8dc4-49c8-8ffd-ae01821a3fc7\",\r\n                    \"device-owner\": \"compute:nova\",\r\n                    \"fixed-ips\": [\r\n                        {\r\n                            \"ip-address\": \"10.11.12.20\",\r\n                            \"subnet-id\": \"4aef69db-e3f8-4830-8979-888e6c461f9a\"\r\n                        }\r\n                    ],\r\n                    \"mac-address\": \"fa:16:3e:8e:9b:77\",\r\n                    \"name\": \"\",\r\n                    \"network-id\": \"adc1b0ba-cb45-4d90-bdbd-50ec29450e7f\",\r\n                    \"neutron-binding:host-id\": \"compute0\",\r\n                    \"neutron-binding:vif-details\": [\r\n                        {\r\n                            \"details-key\": \"vhostuser_mode\",\r\n                            \"value\": \"server\"\r\n                        },\r\n                        {\r\n                            \"details-key\": \"port_filter\",\r\n                            \"value\": \"true\"\r\n                        },\r\n                        {\r\n                            \"details-key\": \"vhostuser_socket\",\r\n                            \"value\": \"/tmp/socket_15fcb2c2-a714-438a-92ce-d6cdedf366ff\"\r\n                        }\r\n                    ],\r\n                    \"neutron-binding:vif-type\": \"vhostuser\",\r\n                    \"neutron-binding:vnic-type\": \"normal\",\r\n                    \"neutron-portsecurity:port-security-enabled\": true,\r\n                    \"security-groups\": [\r\n                        \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\"\r\n                    ],\r\n                    \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\r\n                    \"uuid\": \"15fcb2c2-a714-438a-92ce-d6cdedf366ff\"\r\n                },\r\n                {\r\n                    \"admin-state-up\": true,\r\n                    \"device-id\": \"52ae3bd2-8dc4-49c8-8ffd-ae01821a3fc7\",\r\n                    \"device-owner\": \"compute:nova\",\r\n                    \"fixed-ips\": [\r\n                        {\r\n                            \"ip-address\": \"10.11.12.21\",\r\n                            \"subnet-id\": \"4aef69db-e3f8-4830-8979-888e6c461f9a\"\r\n                        }\r\n                    ],\r\n                    \"mac-address\": \"fa:16:3e:8e:9b:78\",\r\n                    \"name\": \"\",\r\n                    \"network-id\": \"adc1b0ba-cb45-4d90-bdbd-50ec29450e7f\",\r\n                    \"neutron-binding:host-id\": \"compute1\",\r\n                    \"neutron-binding:vif-details\": [\r\n                        {\r\n                            \"details-key\": \"vhostuser_mode\",\r\n                            \"value\": \"server\"\r\n                        },\r\n                        {\r\n                            \"details-key\": \"port_filter\",\r\n                            \"value\": \"true\"\r\n                        },\r\n                        {\r\n                            \"details-key\": \"vhostuser_socket\",\r\n                            \"value\": \"/tmp/socket_25fcb2c2-a714-438a-92ce-d6cdedf366ff\"\r\n                        }\r\n                    ],\r\n                    \"neutron-binding:vif-type\": \"vhostuser\",\r\n                    \"neutron-binding:vnic-type\": \"normal\",\r\n                    \"neutron-portsecurity:port-security-enabled\": true,\r\n                    \"security-groups\": [\r\n                        \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\"\r\n                    ],\r\n                    \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\r\n                    \"uuid\": \"25fcb2c2-a714-438a-92ce-d6cdedf366ff\"\r\n                },\r\n                {\r\n                    \"admin-state-up\": true,\r\n                    \"device-id\": \"62ae3bd2-8dc4-49c8-8ffd-ae01821a3fc7\",\r\n                    \"device-owner\": \"compute:nova\",\r\n                    \"fixed-ips\": [\r\n                        {\r\n                            \"ip-address\": \"10.11.12.22\",\r\n                            \"subnet-id\": \"4aef69db-e3f8-4830-8979-888e6c461f9a\"\r\n                        }\r\n                    ],\r\n                    \"mac-address\": \"fa:16:3e:8e:9b:79\",\r\n                    \"name\": \"\",\r\n                    \"network-id\": \"adc1b0ba-cb45-4d90-bdbd-50ec29450e7f\",\r\n                    \"neutron-binding:host-id\": \"controller\",\r\n                    \"neutron-binding:vif-details\": [\r\n                        {\r\n                            \"details-key\": \"vhostuser_mode\",\r\n                            \"value\": \"server\"\r\n                        },\r\n                        {\r\n                            \"details-key\": \"port_filter\",\r\n                            \"value\": \"true\"\r\n                        },\r\n                        {\r\n                            \"details-key\": \"vhostuser_socket\",\r\n                            \"value\": \"/tmp/socket_35fcb2c2-a714-438a-92ce-d6cdedf366ff\"\r\n                        }\r\n                    ],\r\n                    \"neutron-binding:vif-type\": \"vhostuser\",\r\n                    \"neutron-binding:vnic-type\": \"normal\",\r\n                    \"neutron-portsecurity:port-security-enabled\": true,\r\n                    \"security-groups\": [\r\n                        \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\"\r\n                    ],\r\n                    \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\r\n                    \"uuid\": \"35fcb2c2-a714-438a-92ce-d6cdedf366ff\"\r\n                },\r\n                {\r\n                    \"admin-state-up\": true,\r\n                    \"device-id\": \"66256547-56ba-48af-827a-a0c83141094a\",\r\n                    \"device-owner\": \"network:router_interface\",\r\n                    \"fixed-ips\": [\r\n                        {\r\n                            \"ip-address\": \"10.11.12.1\",\r\n                            \"subnet-id\": \"4aef69db-e3f8-4830-8979-888e6c461f9a\"\r\n                        }\r\n                    ],\r\n                    \"mac-address\": \"fa:16:3e:b7:8b:0a\",\r\n                    \"name\": \"\",\r\n                    \"network-id\": \"adc1b0ba-cb45-4d90-bdbd-50ec29450e7f\",\r\n                    \"neutron-binding:host-id\": \"controller\",\r\n                    \"neutron-binding:vif-details\": [\r\n                        {\r\n                            \"details-key\": \"port_filter\",\r\n                            \"value\": \"true\"\r\n                        }\r\n                    ],\r\n                    \"neutron-binding:vif-type\": \"vhostuser\",\r\n                    \"neutron-binding:vnic-type\": \"normal\",\r\n                    \"neutron-portsecurity:port-security-enabled\": false,\r\n                    \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\r\n                    \"uuid\": \"bc2475a7-5f8e-43ef-8cb5-60885dbff984\"\r\n                },\r\n                {\r\n                    \"admin-state-up\": true,\r\n                    \"device-id\": \"963f3e6b-47e4-49d1-8913-e17d84abb9b1\",\r\n                    \"device-owner\": \"network:dhcp\",\r\n                    \"fixed-ips\": [\r\n                        {\r\n                            \"ip-address\": \"10.11.12.5\",\r\n                            \"subnet-id\": \"4aef69db-e3f8-4830-8979-888e6c461f9a\"\r\n                        }\r\n                    ],\r\n                    \"mac-address\": \"fa:16:3e:73:e1:76\",\r\n                    \"name\": \"vm-compute-1-1-port\",\r\n                    \"network-id\": \"adc1b0ba-cb45-4d90-bdbd-50ec29450e7f\",\r\n                    \"neutron-binding:host-id\": \"compute1\",\r\n                    \"neutron-binding:vif-details\": [\r\n                        {\r\n                            \"details-key\": \"port_filter\",\r\n                            \"value\": \"true\"\r\n                        }\r\n                    ],\r\n                    \"neutron-binding:vif-type\": \"vhostuser\",\r\n                    \"neutron-binding:vnic-type\": \"normal\",\r\n                    \"neutron-portsecurity:port-security-enabled\": true,\r\n                    \"security-groups\": [\r\n                        \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\"\r\n                    ],\r\n                    \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\r\n                    \"uuid\": \"5ae3ba7e-22ba-4bd8-8524-d565496f5036\"\r\n                },\r\n                {\r\n                    \"admin-state-up\": true,\r\n                    \"device-id\": \"dhcp827da361-9c56-50f7-913f-5a01f7bfed2c-adc1b0ba-cb45-4d90-bdbd-50ec29450e7f\",\r\n                    \"device-owner\": \"network:dhcp\",\r\n                    \"fixed-ips\": [\r\n                        {\r\n                            \"ip-address\": \"10.11.12.2\",\r\n                            \"subnet-id\": \"4aef69db-e3f8-4830-8979-888e6c461f9a\"\r\n                        }\r\n                    ],\r\n                    \"mac-address\": \"fa:16:3e:bd:29:73\",\r\n                    \"name\": \"\",\r\n                    \"network-id\": \"adc1b0ba-cb45-4d90-bdbd-50ec29450e7f\",\r\n                    \"neutron-binding:host-id\": \"controller\",\r\n                    \"neutron-binding:vif-details\": [\r\n                        {\r\n                            \"details-key\": \"port_filter\",\r\n                            \"value\": \"true\"\r\n                        }\r\n                    ],\r\n                    \"neutron-binding:vif-type\": \"vhostuser\",\r\n                    \"neutron-binding:vnic-type\": \"normal\",\r\n                    \"neutron-portsecurity:port-security-enabled\": false,\r\n                    \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\r\n                    \"uuid\": \"ba9b0895-23e7-4c60-a728-59a9268fa3ab\"\r\n                },\r\n                {\r\n                    \"admin-state-up\": true,\r\n                    \"device-id\": \"3e914e7c-ae81-499c-a9b2-076ffc474421\",\r\n                    \"device-owner\": \"network:dhcp\",\r\n                    \"fixed-ips\": [\r\n                        {\r\n                            \"ip-address\": \"10.11.12.6\",\r\n                            \"subnet-id\": \"4aef69db-e3f8-4830-8979-888e6c461f9a\"\r\n                        }\r\n                    ],\r\n                    \"mac-address\": \"fa:16:3e:ec:28:85\",\r\n                    \"name\": \"vm-compute-1-2-port\",\r\n                    \"network-id\": \"adc1b0ba-cb45-4d90-bdbd-50ec29450e7f\",\r\n                    \"neutron-binding:host-id\": \"compute1\",\r\n                    \"neutron-binding:vif-details\": [\r\n                        {\r\n                            \"details-key\": \"port_filter\",\r\n                            \"value\": \"true\"\r\n                        }\r\n                    ],\r\n                    \"neutron-binding:vif-type\": \"vhostuser\",\r\n                    \"neutron-binding:vnic-type\": \"normal\",\r\n                    \"neutron-portsecurity:port-security-enabled\": true,\r\n                    \"security-groups\": [\r\n                        \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\"\r\n                    ],\r\n                    \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\r\n                    \"uuid\": \"0903dddd-88ec-4a70-bb6f-eaa9a35831a2\"\r\n                },\r\n                {\r\n                    \"admin-state-up\": true,\r\n                    \"device-id\": \"401b0578-7f57-4c2a-bc70-fd98c2e84a3e\",\r\n                    \"device-owner\": \"network:dhcp\",\r\n                    \"fixed-ips\": [\r\n                        {\r\n                            \"ip-address\": \"10.11.12.3\",\r\n                            \"subnet-id\": \"4aef69db-e3f8-4830-8979-888e6c461f9a\"\r\n                        }\r\n                    ],\r\n                    \"mac-address\": \"fa:16:3e:3b:7e:32\",\r\n                    \"name\": \"vm-compute-0-1-port\",\r\n                    \"network-id\": \"adc1b0ba-cb45-4d90-bdbd-50ec29450e7f\",\r\n                    \"neutron-binding:host-id\": \"compute0\",\r\n                    \"neutron-binding:vif-details\": [\r\n                        {\r\n                            \"details-key\": \"port_filter\",\r\n                            \"value\": \"true\"\r\n                        }\r\n                    ],\r\n                    \"neutron-binding:vif-type\": \"vhostuser\",\r\n                    \"neutron-binding:vnic-type\": \"normal\",\r\n                    \"neutron-portsecurity:port-security-enabled\": true,\r\n                    \"security-groups\": [\r\n                        \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\"\r\n                    ],\r\n                    \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\r\n                    \"uuid\": \"44ce999c-9f65-4222-9fd5-b98f7bdf8cf7\"\r\n                }\r\n            ]\r\n        },\r\n        \"security-groups\": {\r\n            \"security-group\": [\r\n                {\r\n                    \"name\": \"default\",\r\n                    \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\r\n                    \"uuid\": \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\"\r\n                }\r\n            ]\r\n        },\r\n        \"security-rules\": {\r\n            \"security-rule\": [\r\n                {\r\n                    \"direction\": \"neutron-constants:direction-ingress\",\r\n                    \"ethertype\": \"neutron-constants:ethertype-v4\",\r\n                    \"remote-group-id\": \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\",\r\n                    \"security-group-id\": \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\",\r\n                    \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\r\n                    \"uuid\": \"7d037f8c-e35d-4f34-b2a8-6e6912728498\"\r\n                },\r\n                {\r\n                    \"direction\": \"neutron-constants:direction-ingress\",\r\n                    \"ethertype\": \"neutron-constants:ethertype-v6\",\r\n                    \"remote-group-id\": \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\",\r\n                    \"security-group-id\": \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\",\r\n                    \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\r\n                    \"uuid\": \"b5fb268c-54d1-4f1e-8a6c-cb248fc57278\"\r\n                },\r\n                {\r\n                    \"direction\": \"neutron-constants:direction-egress\",\r\n                    \"ethertype\": \"neutron-constants:ethertype-v4\",\r\n                    \"security-group-id\": \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\",\r\n                    \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\r\n                    \"uuid\": \"e7e07939-8962-4e3c-a056-ddbb83a36d7f\"\r\n                },\r\n                {\r\n                    \"direction\": \"neutron-constants:direction-egress\",\r\n                    \"ethertype\": \"neutron-constants:ethertype-v6\",\r\n                    \"security-group-id\": \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\",\r\n                    \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\r\n                    \"uuid\": \"efd160f9-8383-4d42-ab35-201d898fd87e\"\r\n                }\r\n            ]\r\n        },\r\n        \"subnets\": {\r\n            \"subnet\": [\r\n                {\r\n                    \"allocation-pools\": [\r\n                        {\r\n                            \"end\": \"10.11.12.254\",\r\n                            \"start\": \"10.11.12.2\"\r\n                        }\r\n                    ],\r\n                    \"cidr\": \"10.11.12.0/24\",\r\n                    \"enable-dhcp\": true,\r\n                    \"gateway-ip\": \"10.11.12.1\",\r\n                    \"ip-version\": \"neutron-constants:ip-version-v4\",\r\n                    \"name\": \"vxlansubnet\",\r\n                    \"network-id\": \"adc1b0ba-cb45-4d90-bdbd-50ec29450e7f\",\r\n                    \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\r\n                    \"uuid\": \"4aef69db-e3f8-4830-8979-888e6c461f9a\"\r\n                }\r\n            ]\r\n        }\r\n    }\r\n}"
+               },
+               {
+                       "id": "a1e303ba-25c2-f897-9be3-b5552eb7bc1c",
+                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/json\nCache-Control: no-cache\n",
+                       "url": "http://192.168.255.100:8081/restconf/config/neutron:neutron",
+                       "preRequestScript": "",
+                       "pathVariables": {},
+                       "method": "PUT",
+                       "data": [],
+                       "dataMode": "raw",
+                       "tests": "",
+                       "currentHelper": "normal",
+                       "helperAttributes": {},
+                       "time": 1474358939793,
+                       "name": "neutron data - initial",
+                       "description": "",
+                       "collectionId": "ca7e7994-e248-0de1-1b3c-27607ae374c5",
+                       "rawModeData": "{\n  \"neutron\": {\n    \"networks\": {\n      \"network\": [\n        {\n          \"uuid\": \"e82a3ecf-bda8-4868-936e-494999edc0ba\",\n          \"name\": \"vxlannet\",\n          \"neutron-L3-ext:external\": false,\n          \"neutron-provider-ext:segmentation-id\": \"20\",\n          \"neutron-provider-ext:network-type\": \"neutron-networks:network-type-vxlan\",\n          \"admin-state-up\": true,\n          \"shared\": false,\n          \"status\": \"ACTIVE\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\"\n        },\n        {\n          \"uuid\": \"54b04cd2-9731-4e48-950c-448a2d35630c\",\n          \"name\": \"external\",\n          \"neutron-L3-ext:external\": true,\n          \"neutron-provider-ext:segmentation-id\": \"50\",\n          \"neutron-provider-ext:network-type\": \"neutron-networks:network-type-vxlan\",\n          \"admin-state-up\": true,\n          \"shared\": false,\n          \"status\": \"ACTIVE\",\n          \"tenant-id\": \"85a4aec1-69a7-4b1e-a0ea-e8d89562cf4a\"\n        }\n      ]\n    },\n    \"subnets\": {\n      \"subnet\": [\n        {\n          \"uuid\": \"3d1158f1-540b-4139-81a6-4dbbb3dae1e5\",\n          \"ip-version\": \"neutron-constants:ip-version-v4\",\n          \"gateway-ip\": \"10.11.12.1\",\n          \"name\": \"vxlansubnet\",\n          \"network-id\": \"e82a3ecf-bda8-4868-936e-494999edc0ba\",\n          \"cidr\": \"10.11.12.0/24\",\n          \"enable-dhcp\": true,\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\n          \"allocation-pools\": [\n            {\n              \"start\": \"10.11.12.2\",\n              \"end\": \"10.11.12.254\"\n            }\n          ]\n        }\n      ]\n    },\n    \"security-groups\": {\n      \"security-group\": [\n        {\n          \"uuid\": \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\",\n          \"name\": \"default\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\"\n        }\n      ]\n    },\n    \"security-rules\": {\n      \"security-rule\": [\n        {\n          \"uuid\": \"7d037f8c-e35d-4f34-b2a8-6e6912728498\",\n          \"direction\": \"neutron-constants:direction-ingress\",\n          \"security-group-id\": \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\",\n          \"ethertype\": \"neutron-constants:ethertype-v4\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\n          \"remote-group-id\": \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\"\n        },\n        {\n          \"uuid\": \"b5fb268c-54d1-4f1e-8a6c-cb248fc57278\",\n          \"direction\": \"neutron-constants:direction-ingress\",\n          \"security-group-id\": \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\",\n          \"ethertype\": \"neutron-constants:ethertype-v6\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\n          \"remote-group-id\": \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\"\n        },\n        {\n          \"uuid\": \"e7e07939-8962-4e3c-a056-ddbb83a36d7f\",\n          \"direction\": \"neutron-constants:direction-egress\",\n          \"security-group-id\": \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\",\n          \"ethertype\": \"neutron-constants:ethertype-v4\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\"\n        },\n        {\n          \"uuid\": \"efd160f9-8383-4d42-ab35-201d898fd87e\",\n          \"direction\": \"neutron-constants:direction-egress\",\n          \"security-group-id\": \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\",\n          \"ethertype\": \"neutron-constants:ethertype-v6\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\"\n        }\n      ]\n    },\n    \"ports\": {\n      \"port\": [\n        {\n          \"uuid\": \"6a616da7-d1ba-45c1-80bd-ca5e3fa0edfc\",\n          \"device-owner\": \"network:router_interface\",\n          \"admin-state-up\": true,\n          \"name\": \"\",\n          \"fixed-ips\": [\n            {\n              \"subnet-id\": \"3d1158f1-540b-4139-81a6-4dbbb3dae1e5\",\n              \"ip-address\": \"10.11.12.1\"\n            }\n          ],\n          \"network-id\": \"e82a3ecf-bda8-4868-936e-494999edc0ba\",\n          \"neutron-binding:vnic-type\": \"normal\",\n          \"neutron-binding:host-id\": \"controller\",\n          \"neutron-binding:vif-details\": [\n            {\n              \"details-key\": \"port_filter\",\n              \"value\": \"true\"\n            }\n          ],\n          \"neutron-binding:vif-type\": \"vhostuser\",\n          \"device-id\": \"3a1fd562-6423-4bbd-89f0-6130ebb96e92\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\n          \"mac-address\": \"fa:16:3e:4c:11:20\",\n          \"security-groups\": [\n            \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\"\n          ],\n          \"neutron-portsecurity:port-security-enabled\": false\n        },\n        {\n          \"uuid\": \"a9607d99-0afa-41cc-8f2f-8d62b6e9bc1c\",\n          \"device-owner\": \"network:dhcp\",\n          \"admin-state-up\": true,\n          \"name\": \"vm-0-1-port\",\n          \"fixed-ips\": [\n            {\n              \"subnet-id\": \"3d1158f1-540b-4139-81a6-4dbbb3dae1e5\",\n              \"ip-address\": \"10.11.12.3\"\n            }\n          ],\n          \"network-id\": \"e82a3ecf-bda8-4868-936e-494999edc0ba\",\n          \"neutron-binding:vnic-type\": \"normal\",\n          \"neutron-binding:host-id\": \"compute0\",\n          \"neutron-binding:vif-details\": [\n            {\n              \"details-key\": \"port_filter\",\n              \"value\": \"true\"\n            }\n          ],\n          \"neutron-binding:vif-type\": \"vhostuser\",\n          \"device-id\": \"6b87c96a-8f3f-451f-a3d7-200b01d80744\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\n          \"mac-address\": \"fa:16:3e:4c:fd:34\",\n          \"security-groups\": [\n            \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\"\n          ],\n          \"neutron-portsecurity:port-security-enabled\": true\n        },\n        {\n          \"uuid\": \"8def6a66-7d70-4459-adc4-b189717441b4\",\n          \"device-owner\": \"network:dhcp\",\n          \"admin-state-up\": true,\n          \"name\": \"vm-0-2-port\",\n          \"fixed-ips\": [\n            {\n              \"subnet-id\": \"3d1158f1-540b-4139-81a6-4dbbb3dae1e5\",\n              \"ip-address\": \"10.11.12.4\"\n            }\n          ],\n          \"network-id\": \"e82a3ecf-bda8-4868-936e-494999edc0ba\",\n          \"neutron-binding:vnic-type\": \"normal\",\n          \"neutron-binding:host-id\": \"compute0\",\n          \"neutron-binding:vif-details\": [\n            {\n              \"details-key\": \"port_filter\",\n              \"value\": \"true\"\n            }\n          ],\n          \"neutron-binding:vif-type\": \"vhostuser\",\n          \"device-id\": \"6e85b372-9269-4f96-8049-f6cccdaf340c\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\n          \"mac-address\": \"fa:16:3e:c7:76:82\",\n          \"security-groups\": [\n            \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\"\n          ],\n          \"neutron-portsecurity:port-security-enabled\": true\n        },\n        {\n          \"uuid\": \"7415f153-2a26-4968-880d-3aba22cf6f9d\",\n          \"device-owner\": \"network:dhcp\",\n          \"admin-state-up\": true,\n          \"name\": \"vm-1-1-port\",\n          \"fixed-ips\": [\n            {\n              \"subnet-id\": \"3d1158f1-540b-4139-81a6-4dbbb3dae1e5\",\n              \"ip-address\": \"10.11.12.5\"\n            }\n          ],\n          \"network-id\": \"e82a3ecf-bda8-4868-936e-494999edc0ba\",\n          \"neutron-binding:vnic-type\": \"normal\",\n          \"neutron-binding:host-id\": \"compute1\",\n          \"neutron-binding:vif-details\": [\n            {\n              \"details-key\": \"port_filter\",\n              \"value\": \"true\"\n            }\n          ],\n          \"neutron-binding:vif-type\": \"vhostuser\",\n          \"device-id\": \"565c0e5f-515a-457b-ae89-857c3f66296a\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\n          \"mac-address\": \"fa:16:3e:6f:d4:3c\",\n          \"security-groups\": [\n            \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\"\n          ],\n          \"neutron-portsecurity:port-security-enabled\": true\n        },\n        {\n          \"uuid\": \"fa943a17-ace1-41a6-80ee-3fa292d2d320\",\n          \"device-owner\": \"network:dhcp\",\n          \"admin-state-up\": true,\n          \"name\": \"vm-1-2-port\",\n          \"fixed-ips\": [\n            {\n              \"subnet-id\": \"3d1158f1-540b-4139-81a6-4dbbb3dae1e5\",\n              \"ip-address\": \"10.11.12.6\"\n            }\n          ],\n          \"network-id\": \"e82a3ecf-bda8-4868-936e-494999edc0ba\",\n          \"neutron-binding:vnic-type\": \"normal\",\n          \"neutron-binding:host-id\": \"compute1\",\n          \"neutron-binding:vif-details\": [\n            {\n              \"details-key\": \"port_filter\",\n              \"value\": \"true\"\n            }\n          ],\n          \"neutron-binding:vif-type\": \"vhostuser\",\n          \"device-id\": \"945b82f4-07a9-4442-aa64-d3cc34cfb64d\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\n          \"mac-address\": \"fa:16:3e:ec:3a:40\",\n          \"security-groups\": [\n            \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\"\n          ],\n          \"neutron-portsecurity:port-security-enabled\": true\n        },\n        {\n          \"uuid\": \"c6076003-2b5c-4487-9db6-f2667a2c276e\",\n          \"device-owner\": \"network:dhcp\",\n          \"admin-state-up\": true,\n          \"name\": \"\",\n          \"fixed-ips\": [\n            {\n              \"subnet-id\": \"3d1158f1-540b-4139-81a6-4dbbb3dae1e5\",\n              \"ip-address\": \"10.11.12.2\"\n            }\n          ],\n          \"network-id\": \"e82a3ecf-bda8-4868-936e-494999edc0ba\",\n          \"neutron-binding:vnic-type\": \"normal\",\n          \"neutron-binding:host-id\": \"controller\",\n          \"neutron-binding:vif-details\": [\n            {\n              \"details-key\": \"port_filter\",\n              \"value\": \"true\"\n            }\n          ],\n          \"neutron-binding:vif-type\": \"vhostuser\",\n          \"device-id\": \"dhcp827da361-9c56-50f7-913f-5a01f7bfed2c-e82a3ecf-bda8-4868-936e-494999edc0ba\",\n          \"tenant-id\": \"92070479-5900-498b-84e3-893a04f55709\",\n          \"mac-address\": \"fa:16:3e:bc:6b:e2\",\n          \"security-groups\": [\n            \"0fbd740b-aa18-4bbf-95b6-cca9f3f14107\"\n          ],\n          \"neutron-portsecurity:port-security-enabled\": false\n        }\n      ]\n    }\n  }\n}"
+               },
+               {
+                       "id": "a6008cfe-8f36-6a43-9464-87f55538768f",
+                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/yang.data+json\nCache-Control: no-cache\n",
+                       "url": "http://192.168.255.100:8181/restconf/operational/base-endpoint:endpoints",
+                       "preRequestScript": "",
+                       "pathVariables": {},
+                       "method": "GET",
+                       "data": [],
+                       "dataMode": "raw",
+                       "tests": "",
+                       "currentHelper": "normal",
+                       "helperAttributes": {},
+                       "time": 1472628913643,
+                       "name": "endpoints operational",
+                       "description": "",
+                       "collectionId": "ca7e7994-e248-0de1-1b3c-27607ae374c5",
+                       "folder": "66e85953-eba2-e686-1c05-181c21f139aa",
+                       "rawModeData": "{\n    \"network-elements\":\n    {\n        \"network-element\": [\n            {\n                \"iid\": \"/opendaylight-inventory:nodes/opendaylight-inventory:node[opendaylight-inventory:id='openflow:1']\";\n                \"interface\": [\n                    {\n                        \"iid\": \"/opendaylight-inventory:nodes/opendaylight-inventory:node[opendaylight-inventory:id='openflow:1']/opendaylight-inventory:node-connector[opendaylight-inventory:id='openflow:1:3']\";\n                        \"endpoint-network\": [\n                            {\n                                \"l3-context\": \"l3-context-vrf-red\",\n                                \"ip-prefix\": \"10.0.35.70/24\"\n                            }\n                        ]\n                    }\n                ]\n            }\n        ]\n    }\n}"
+               },
+               {
+                       "id": "c8bff5bf-6435-5cac-7242-52b6be1a6b2f",
+                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\n",
+                       "url": "http://192.168.255.100:8081/restconf/config/renderer:renderers/renderer/vpp-renderer",
+                       "preRequestScript": null,
+                       "pathVariables": {},
+                       "method": "GET",
+                       "data": [],
+                       "dataMode": "params",
+                       "tests": null,
+                       "currentHelper": "normal",
+                       "helperAttributes": {},
+                       "time": 1473431491089,
+                       "name": "VPP renderer config",
+                       "description": "",
+                       "collectionId": "ca7e7994-e248-0de1-1b3c-27607ae374c5",
+                       "folder": "66e85953-eba2-e686-1c05-181c21f139aa"
+               },
+               {
+                       "id": "d0c7ad28-aaac-2585-37c4-8ad1fb96b300",
+                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/yang.data+json\nCache-Control: no-cache\n",
+                       "url": "http://192.168.255.100:8181/restconf/operational/resolved-policy:resolved-policies ",
+                       "preRequestScript": "",
+                       "pathVariables": {},
+                       "method": "GET",
+                       "data": [],
+                       "dataMode": "params",
+                       "tests": "",
+                       "currentHelper": "normal",
+                       "helperAttributes": {},
+                       "time": 1472628929342,
+                       "name": "resolved-policies operational",
+                       "description": "",
+                       "collectionId": "ca7e7994-e248-0de1-1b3c-27607ae374c5",
+                       "folder": "66e85953-eba2-e686-1c05-181c21f139aa"
+               },
+               {
+                       "id": "d43e3c11-32e3-b533-cf1e-935194987fb5",
+                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/json\n",
+                       "url": "http://192.168.255.100:8181/restconf/config/vpp-renderer:config",
+                       "preRequestScript": null,
+                       "pathVariables": {},
+                       "method": "GET",
+                       "data": [],
+                       "dataMode": "raw",
+                       "tests": null,
+                       "currentHelper": "normal",
+                       "helperAttributes": {},
+                       "time": 1472628092435,
+                       "name": "VPP endpoints",
+                       "description": "",
+                       "collectionId": "ca7e7994-e248-0de1-1b3c-27607ae374c5",
+                       "folder": "66e85953-eba2-e686-1c05-181c21f139aa",
+                       "rawModeData": "{\n    \"config\": {\n        \"vpp-endpoint\": [\n            {\n                \"context-type\": \"l2-l3-forwarding:l2-bridge-domain\",\n                \"context-id\": \"e86740a2-042c-4e64-a43b-cc224e0d5240\",\n                \"address-type\": \"l2-l3-forwarding:mac-address-type\",\n                \"address\": \"fa:16:3e:4a:9f:c4\",\n                \"vpp-node-path\": \"/network-topology:network-topology/network-topology:topology[network-topology:topology-id='topology-netconf']/network-topology:node[network-topology:node-id='dut1']\",\n                \"vpp-interface-name\": \"neutron_port_3d5dff96-25f5-4d4b-aa11-dc03f7f8d8e8\",\n                \"physical-address\": \"fa:16:3e:4a:9f:c4\",\n                \"name\": \"tap3d5dff96-25\",\n                \"description\": \"neutron port\"\n            },\n            {\n                \"context-type\": \"l2-l3-forwarding:l2-bridge-domain\",\n                \"context-id\": \"e86740a2-042c-4e64-a43b-cc224e0d5240\",\n                \"address-type\": \"l2-l3-forwarding:mac-address-type\",\n                \"address\": \"fb:17:3f:4b:90:c5\",\n                \"vpp-node-path\": \"/network-topology:network-topology/network-topology:topology[network-topology:topology-id='topology-netconf']/network-topology:node[network-topology:node-id='dut2']\",\n                \"vpp-interface-name\": \"neutron_port_dc03f7f8-25f5-4d4b-aa11-3d5dff96d8e8\",\n                \"physical-address\": \"fb:17:3f:4b:90:c5\",\n                \"name\": \"tapdc03f7f8-25\",\n                \"description\": \"neutron port\"\n            }\n        ]\n    }\n}"
+               },
+               {
+                       "id": "f3e707bc-2e56-0c63-401a-af6d8cc89232",
+                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\n",
+                       "url": "http://192.168.255.100:8181/restconf/config/network-topology:network-topology/topology/36e1c19e-e2f5-4c83-a5af-125cb2af0419",
+                       "preRequestScript": null,
+                       "pathVariables": {},
+                       "method": "GET",
+                       "data": null,
+                       "dataMode": "params",
+                       "tests": null,
+                       "currentHelper": "normal",
+                       "helperAttributes": {},
+                       "time": 1472628264787,
+                       "name": "read BD config",
+                       "description": "",
+                       "collectionId": "ca7e7994-e248-0de1-1b3c-27607ae374c5",
+                       "folder": "66e85953-eba2-e686-1c05-181c21f139aa"
+               },
+               {
+                       "id": "f48fb80a-f113-04ae-5e97-b1110f31aec0",
+                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/yang.data+json\nCache-Control: no-cache\n",
+                       "url": "http://192.168.255.100:8181/restconf/operational/base-endpoint:endpoint-locations",
+                       "preRequestScript": "",
+                       "pathVariables": {},
+                       "method": "GET",
+                       "data": [],
+                       "dataMode": "raw",
+                       "tests": "",
+                       "currentHelper": "normal",
+                       "helperAttributes": {},
+                       "time": 1472628503852,
+                       "name": "endpoint-locations operational",
+                       "description": "",
+                       "collectionId": "ca7e7994-e248-0de1-1b3c-27607ae374c5",
+                       "folder": "66e85953-eba2-e686-1c05-181c21f139aa",
+                       "rawModeData": "{\n    \"network-elements\":\n    {\n        \"network-element\": [\n            {\n                \"iid\": \"/opendaylight-inventory:nodes/opendaylight-inventory:node[opendaylight-inventory:id='openflow:1']\";\n                \"interface\": [\n                    {\n                        \"iid\": \"/opendaylight-inventory:nodes/opendaylight-inventory:node[opendaylight-inventory:id='openflow:1']/opendaylight-inventory:node-connector[opendaylight-inventory:id='openflow:1:3']\";\n                        \"endpoint-network\": [\n                            {\n                                \"l3-context\": \"l3-context-vrf-red\",\n                                \"ip-prefix\": \"10.0.35.70/24\"\n                            }\n                        ]\n                    }\n                ]\n            }\n        ]\n    }\n}"
+               },
+               {
+                       "id": "f53c4509-ecec-e7b4-8d93-98494f84d5bc",
+                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\n",
+                       "url": "http://192.168.255.100:8181/restconf/config/network-topology:network-topology/topology/topology-netconf",
+                       "preRequestScript": null,
+                       "pathVariables": {},
+                       "method": "GET",
+                       "data": null,
+                       "dataMode": "params",
+                       "tests": null,
+                       "currentHelper": "normal",
+                       "helperAttributes": {},
+                       "time": 1472628316067,
+                       "name": "Get network-topology",
+                       "description": "",
+                       "collectionId": "ca7e7994-e248-0de1-1b3c-27607ae374c5",
+                       "folder": "66e85953-eba2-e686-1c05-181c21f139aa"
+               }
+       ]
+}
\ No newline at end of file
diff --git a/demos/vpp-demo/readme.rst b/demos/vpp-demo/readme.rst
new file mode 100644 (file)
index 0000000..ab86bac
--- /dev/null
@@ -0,0 +1,88 @@
+VPP-DEMO for GBP
+================
+This demo requires Vagrant (tested on 1.8.5 version) and VirtualBox (tested on 5.1.2 version)
+To setup the environment just navigate to groupbasedpolicy\demos\vpp-demo and execute following command::
+
+    vagrant up
+
+Vagrant then creates 3VMs (controller, compute0 and compute1). After vagrant finishes you can stop the VMs with
+"vagrant halt" command and bring them up again with "vagrant up" command. If distribution-karaf-0.5.0-Boron.tar.gz is
+available in vpp-demo folder vagrant setup will use this one. If it is not it will download ODL to controller node.
+
+DEMO setup
+----------
+(repeat this everytime you want to reset the demo)
+To reset state of VMs run the following command on all VMs. It resolves on which node it is running and
+configures IPs to vpp::
+
+    /vagrant/reload-nodes.sh
+
+To enter VMs use "vagrant ssh" command::
+
+    vagrant ssh controller
+    vagrant ssh compute0
+    vagrant ssh compute1
+
+On controller the script will start ODL in debug mode.
+
+You need to install following features in ODL (logs are optional)::
+
+    feature:install odl-vbd-ui odl-groupbasedpolicy-ui odl-groupbasedpolicy-neutron-vpp-mapper odl-restconf
+
+    log:set ERROR org.opendaylight.netconf
+    log:set TRACE org.opendaylight.groupbasedpolicy.renderer.vpp
+    log:set TRACE org.opendaylight.groupbasedpolicy.neutron.vpp.mapper
+    log:set TRACE org.opendaylight.vbd.impl
+    log:set ERROR org.opendaylight.netconf
+    log:tail
+
+You can now import vpp-demo collection (local-demo-postman.json) to postman and start demo by following these steps::
+
+    1. You need to register VPP nodes in postman collection:
+       a. Register VPP controller
+       b. Register VPP compute0
+       c. Register VPP compute1
+    2. After nodes are connected (you can check in "VPP renderer operational") yo can feed data to ODL:
+       use "neutron data - initial" from collection
+    3. This will take some time, then you should be able to add tap ports to namespaces and ping between them
+
+As the last thing you need to assign Tap ports which were created by the above configuration to according namespaces.
+
+On controller::
+
+    sudo ip netns add vpp-controller
+    sudo ip link set dev qr-6a616da7-d1 up netns vpp-controller
+    sudo ip link set dev tapc6076003-2b up netns vpp-controller
+    sudo ip netns exec vpp-controller ip addr add 10.11.12.1/24 dev qr-6a616da7-d1
+    sudo ip netns exec vpp-controller ip addr add 10.11.12.2/24 dev tapc6076003-2b
+
+    sudo ip netns exec vpp-controller ping 10.11.12.3 -c 5
+    sudo ip netns exec vpp-controller ping 10.11.12.4 -c 5
+    sudo ip netns exec vpp-controller ping 10.11.12.5 -c 5
+    sudo ip netns exec vpp-controller ping 10.11.12.6 -c 5
+
+On compute0::
+
+    sudo ip netns add vpp-compute0
+    sudo ip link set dev tap8def6a66-7d up netns vpp-compute0
+    sudo ip link set dev tapa9607d99-0a up netns vpp-compute0
+    sudo ip netns exec vpp-compute0 ip addr add 10.11.12.4/24 dev tap8def6a66-7d
+    sudo ip netns exec vpp-compute0 ip addr add 10.11.12.3/24 dev tapa9607d99-0a
+
+    sudo ip netns exec vpp-compute0 ping 10.11.12.1 -c 5
+    sudo ip netns exec vpp-compute0 ping 10.11.12.2 -c 5
+    sudo ip netns exec vpp-compute0 ping 10.11.12.5 -c 5
+    sudo ip netns exec vpp-compute0 ping 10.11.12.6 -c 5
+
+On compute1::
+
+    sudo ip netns add vpp-compute1
+    sudo ip link set dev tap7415f153-2a up netns vpp-compute1
+    sudo ip link set dev tapfa943a17-ac up netns vpp-compute1
+    sudo ip netns exec vpp-compute1 ip addr add 10.11.12.5/24 dev tap7415f153-2a
+    sudo ip netns exec vpp-compute1 ip addr add 10.11.12.6/24 dev tapfa943a17-ac
+
+    sudo ip netns exec vpp-compute1 ping 10.11.12.1 -c 5
+    sudo ip netns exec vpp-compute1 ping 10.11.12.2 -c 5
+    sudo ip netns exec vpp-compute1 ping 10.11.12.3 -c 5
+    sudo ip netns exec vpp-compute1 ping 10.11.12.4 -c 5
diff --git a/demos/vpp-demo/register_vpp_node.sh b/demos/vpp-demo/register_vpp_node.sh
new file mode 100644 (file)
index 0000000..b702587
--- /dev/null
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+display_usage() {
+  echo "Add VPP Mount into ODL."
+  echo "Usage:$0 [ODL Hostname or IP:port] [Mount Name of VPP in ODL] [VPP Hostname or IP] \n"
+  exit 85
+}
+
+if [  $# -lt 3 ]
+then
+  display_usage
+exit 1
+fi
+
+odl_ip=$1
+vpp_host=$2
+vpp_ip=$3
+
+vpp_username=admin
+vpp_password=admin
+
+post_data='{"node" : [
+{"node-id":"'$vpp_host'",
+"netconf-node-topology:host":"'$vpp_ip'",
+"netconf-node-topology:port":"2831",
+"netconf-node-topology:tcp-only":false,
+"netconf-node-topology:keepalive-delay":0,
+"netconf-node-topology:username":"'$vpp_username'",
+"netconf-node-topology:password":"'$vpp_password'",
+"netconf-node-topology:connection-timeout-millis":10000,
+"netconf-node-topology:default-request-timeout-millis":10000,
+"netconf-node-topology:max-connection-attempts":10,
+"netconf-node-topology:between-attempts-timeout-millis":10000,
+"netconf-node-topology:schema-cache-directory":"hcmount"}
+]
+}
+'
+
+curl -u admin:admin -X POST -d "$post_data" -H 'Content-Type: application/json' http://$odl_ip:8081/restconf/config/network-topology:network-topology/network-topology:topology/topology-netconf
diff --git a/demos/vpp-demo/reload-nodes.sh b/demos/vpp-demo/reload-nodes.sh
new file mode 100644 (file)
index 0000000..0b62d83
--- /dev/null
@@ -0,0 +1,67 @@
+#! /bin/bash -x
+sudo service vpp stop
+sudo service honeycomb stop
+#remove persistent data
+sudo rm -rf /var/lib/honeycomb/persist/config/*
+sudo rm -rf /var/lib/honeycomb/persist/context/*
+
+sleep 3
+sudo service vpp start
+sleep 5
+sudo service honeycomb start
+sleep 3
+
+if [ $(hostname) = "controller" ]; then
+    sudo pkill -f karaf
+    sudo rm -rf /opt/distribution-karaf-0.5.0-Boron/data/ /opt/distribution-karaf-0.5.0-Boron/journal/ /opt/distribution-karaf-0.5.0-Boron/snapshots/ /opt/distribution-karaf-0.5.0-Boron/instances/
+    cd
+    sudo vppctl set int state GigabitEthernet0/9/0 up
+    sudo vppctl set int state GigabitEthernet0/a/0 up
+    sudo vppctl set int ip address GigabitEthernet0/9/0 10.0.0.1/24
+    sudo vppctl sh int
+    sudo vppctl sh int address
+
+    sleep 20
+    curl -u admin:admin -X GET -H 'Content-Type: application/xml' http://localhost:8283/restconf/config/ietf-interfaces:interfaces/ | python -m json.tool
+    sudo /opt/distribution-karaf-0.5.0-Boron/bin/karaf debug
+    echo "
+USE THE FOLLOWING FEATURES IN ODL, THEN REGISTER ALL VPP NODES:
+
+log:set ERROR org.opendaylight.netconf
+feature:install odl-vbd-ui odl-groupbasedpolicy-neutron-vpp-mapper odl-restconf
+log:set TRACE org.opendaylight.groupbasedpolicy.renderer.vpp
+log:set TRACE org.opendaylight.groupbasedpolicy.neutron.vpp.mapper
+log:set TRACE org.opendaylight.vbd.impl
+log:set ERROR org.opendaylight.netconf
+logout
+
+
+/vagrant/register_vpp_node.sh 192.168.255.100 compute0 192.168.255.101
+/vagrant/register_vpp_node.sh 192.168.255.100 compute1 192.168.255.102
+/vagrant/register_vpp_node.sh 192.168.255.100 controller 192.168.255.100"
+fi;
+
+if [ $(hostname) = "compute0" ]; then
+    sudo vppctl set int state GigabitEthernet0/9/0 up
+    sudo vppctl set int state GigabitEthernet0/a/0 up
+    sudo vppctl set int ip address GigabitEthernet0/9/0 10.0.0.2/24
+    sudo vppctl sh int
+    sudo vppctl sh int address
+
+    sleep 20
+    curl -u admin:admin -X GET -H 'Content-Type: application/xml' http://localhost:8283/restconf/config/ietf-interfaces:interfaces/ | python -m json.tool
+fi;
+
+if [ $(hostname) = "compute1" ]; then
+    sudo vppctl set int state GigabitEthernet0/9/0 up
+    sudo vppctl set int state GigabitEthernet0/a/0 up
+    sudo vppctl set int ip address GigabitEthernet0/9/0 10.0.0.3/24
+    sudo vppctl sh int
+    sudo vppctl sh int address
+
+    sleep 20
+    curl -u admin:admin -X GET -H 'Content-Type: application/xml' http://localhost:8283/restconf/config/ietf-interfaces:interfaces/ | python -m json.tool
+fi;
+
+
+
diff --git a/demos/vpp-demo/vagrant_scripts/add-user.sh b/demos/vpp-demo/vagrant_scripts/add-user.sh
new file mode 100644 (file)
index 0000000..7472dc3
--- /dev/null
@@ -0,0 +1,12 @@
+#! /bin/bash
+
+#add user
+echo "Adding gbp user..."
+sudo deluser gbp
+sudo adduser --disabled-password --gecos "" gbp
+echo gbp:gbp | sudo chpasswd
+sudo adduser gbp vagrant
+id gbp
+echo "gbp ALL=(root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/gbp
+sudo chmod 0440 /etc/sudoers.d/gbp
+echo "Adding gbp user done."
diff --git a/demos/vpp-demo/vagrant_scripts/configure-vpp.sh b/demos/vpp-demo/vagrant_scripts/configure-vpp.sh
new file mode 100644 (file)
index 0000000..f68363b
--- /dev/null
@@ -0,0 +1,13 @@
+#! /bin/bash
+
+#configure vpp
+if ! grep -q "dev 0000:00:09.0 {vlan-strip-offload off}" /etc/vpp/startup.conf; then
+    echo "configuring VPP..."
+    sudo sed -i "\$adpdk \n{\n  dev 0000:00:09.0 {vlan-strip-offload off}\n  dev 0000:00:0a.0 {vlan-strip-offload off}\n}" "/etc/vpp/startup.conf"
+    echo "configuring VPP done."
+else 
+    echo "WARNING: VPP startup conf was not configured..."
+    exit
+fi
+
+#sudo service vpp start
\ No newline at end of file
diff --git a/demos/vpp-demo/vagrant_scripts/fix-perms.sh b/demos/vpp-demo/vagrant_scripts/fix-perms.sh
new file mode 100644 (file)
index 0000000..37c37c2
--- /dev/null
@@ -0,0 +1,5 @@
+#! /bin/bash
+
+#fix permissions
+sudo chown vagrant:vagrant /home/vagrant/.ssh/authorized_keys
+sudo chmod 0600 /home/vagrant/.ssh/authorized_keys
diff --git a/demos/vpp-demo/vagrant_scripts/install-hc.sh b/demos/vpp-demo/vagrant_scripts/install-hc.sh
new file mode 100644 (file)
index 0000000..c3e928a
--- /dev/null
@@ -0,0 +1,10 @@
+#! /bin/bash
+
+#install hc
+echo "Installing Honeycomb..."
+sudo apt-get update --allow-unauthenticated
+sudo apt-get -y -f install --allow-unauthenticated
+sudo apt-get -qq install -y --allow-unauthenticated honeycomb
+sed -i 's/"restconf-port": 8181/"restconf-port": 8283/g' /opt/honeycomb/config/honeycomb.json
+echo "Installing Honeycomb done."
+#sudo service honeycomb start
\ No newline at end of file
diff --git a/demos/vpp-demo/vagrant_scripts/install-java8.sh b/demos/vpp-demo/vagrant_scripts/install-java8.sh
new file mode 100644 (file)
index 0000000..55548b7
--- /dev/null
@@ -0,0 +1,16 @@
+#! /bin/bash
+
+#install java 8 for ubuntu
+echo "installing java..."
+sudo apt-get update
+sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys DA1A4A13543B466853BAF164EB9B1D8886F44E2A
+if [ ! -f /etc/apt/sources.list.d/openjdk.list ];then
+    echo "deb http://ppa.launchpad.net/openjdk-r/ppa/ubuntu trusty main " | sudo tee -a /etc/apt/sources.list.d/openjdk.list
+    echo "deb-src http://ppa.launchpad.net/openjdk-r/ppa/ubuntu trusty main" | sudo tee -a /etc/apt/sources.list.d/openjdk.list
+else
+    echo "OpenJDK source already applied."
+fi
+sudo apt-get update
+sudo apt-get -y install openjdk-8-jdk
+export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
+echo "$JAVA_HOME"
diff --git a/demos/vpp-demo/vagrant_scripts/install-odl.sh b/demos/vpp-demo/vagrant_scripts/install-odl.sh
new file mode 100644 (file)
index 0000000..b7675d7
--- /dev/null
@@ -0,0 +1,21 @@
+#! /bin/bash
+
+#install ODL
+echo "Installing ODL..."
+sudo rm -rf /opt/distribution-karaf-0.5.0-Boron.tar.gz
+sudo rm -rf /opt/distribution-karaf-0.5.0-Boron
+if [ ! -f /vagrant/distribution-karaf-0.5.0-Boron.tar.gz ];then
+    cd /tmp/
+    echo "downloading ODL (this could take long) ..."
+    wget https://nexus.opendaylight.org/content/repositories/opendaylight.release/org/opendaylight/integration/distribution-karaf/0.5.0-Boron/distribution-karaf-0.5.0-Boron.tar.gz -q
+    sudo cp distribution-karaf-0.5.0-Boron.tar.gz /opt/distribution-karaf-0.5.0-Boron.tar.gz
+else
+    sudo cp /vagrant/distribution-karaf-0.5.0-Boron.tar.gz /opt/distribution-karaf-0.5.0-Boron.tar.gz
+fi
+cd /opt/
+echo "extracting ODL ..."
+sudo tar -zxf distribution-karaf-0.5.0-Boron.tar.gz
+echo "configuring ODL ..."
+sudo sed -i 's/Property name="jetty.port" default="8181"/Property name="jetty.port" default="8081"/g' /opt/distribution-karaf-0.5.0-Boron/etc/jetty.xml
+sudo sed -i 's/Property name="jetty.port" default="8080"/Property name="jetty.port" default="8182"/g' /opt/distribution-karaf-0.5.0-Boron/etc/jetty.xml
+echo "Installing ODL done."
diff --git a/demos/vpp-demo/vagrant_scripts/install-prereqs.sh b/demos/vpp-demo/vagrant_scripts/install-prereqs.sh
new file mode 100644 (file)
index 0000000..f6cc005
--- /dev/null
@@ -0,0 +1,19 @@
+#! /bin/bash
+
+#install pre-reguirements
+echo "Installing pre-reguirements..."
+
+sudo sed -i 's/#force_color_prompt=yes/force_color_prompt=yes/g' /home/vagrant/.bashrc
+sudo sed -i 's/#force_color_prompt=yes/force_color_prompt=yes/g' /root/.bashrc
+
+if [ ! -f /etc/apt/sources.list.d/99fd.io.list ];then
+    echo "deb https://nexus.fd.io/content/repositories/fd.io.stable.1609.ubuntu.trusty.main/ ./" | sudo tee -a /etc/apt/sources.list.d/99fd.io.list
+fi
+sudo apt-get -qq update --allow-unauthenticated
+sudo apt-get -y remove apparmor apparmor-utils libapparmor-perl
+sudo update-grub
+sudo apt-get -y update
+sudo apt-get -y -f install
+sudo apt-get -y install python-virtualenv python-dev iproute2 vim mc debhelper dkms dpkg-dev build-essential
+sudo update-alternatives --install /bin/sh sh /bin/bash 100
+echo "Installing pre-reguirements done."
diff --git a/demos/vpp-demo/vagrant_scripts/install-vpp.sh b/demos/vpp-demo/vagrant_scripts/install-vpp.sh
new file mode 100644 (file)
index 0000000..f605429
--- /dev/null
@@ -0,0 +1,15 @@
+#! /bin/bash
+
+#install vpp
+echo "Installing VPP..."
+sudo apt-get update --allow-unauthenticated
+sudo apt-get -y -f install --allow-unauthenticated
+sysctl -w vm.nr_hugepages=1024
+HUGEPAGES=`sysctl -n  vm.nr_hugepages`
+if [ $HUGEPAGES != 1024 ]; then
+    echo "!!!!!!!!!!!!ERROR: Unable to get 1024 hugepages, only got $HUGEPAGES.  Cannot finish!!!!!!!!!!!!"
+    exit
+fi
+sudo apt-get install -y --allow-unauthenticated vpp-lib vpp vpp-dev vpp-dpdk-dkms
+echo "Installing VPP done."
+#sudo service vpp start
\ No newline at end of file