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. If you want to use ODL Carbon (current master) you need to change also the versions of Honeycomb and VPP. The repositories are added to "/etc/apt/sources.list.d/99fd.io.list". For Boron use "https://nexus.fd.io/content/repositories/fd.io.stable.1609.ubuntu.trusty.main/" which is default and for Carbon use "https://nexus.fd.io/content/repositories/fd.io.master.ubuntu.trusty.main/". You just need to comment out undesired repositories and uncomment repository that you want to use, then update VPP and honeycomb to new versions. 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