X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=docs%2Fqemu_vpp_vm;fp=docs%2Fqemu_vpp_vm;h=4b47f900097a9223d6003dd954a5c14154274d8b;hp=0000000000000000000000000000000000000000;hb=43277be7e77afe0363f62c97c687bcfa506ee4b8;hpb=60831dae7202e1a85fc0cc5037d72b25c09cf756 diff --git a/docs/qemu_vpp_vm b/docs/qemu_vpp_vm new file mode 100644 index 0000000000..4b47f90009 --- /dev/null +++ b/docs/qemu_vpp_vm @@ -0,0 +1,49 @@ +# 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. + +QEMU is used for VPP-VM testing enviroment. You need to run qemu-2.2.1 or newer +in order to Vhos-user support. In CSIT VIRL setup DUT has preinstalled QEMU and +have small VM image "/var/lib/vm/vhost-nested.img". QEMU binary path must +be "/opt/qemu/bin/qemu-system-x86_64". You can use following script to replicate +QEMU setup on DUT "resources/libraries/bash/qemu_build.sh" for local testing, +out of LF's VM setup. VM image must have installed at least qemu-guest-agent, +sshd, bridge-utils and VirtIO support. Note that VPP must be installed before +starting QEMU, because VPP will do the hugepages configuration as part of it's +installation process. Username/password for the VM must be cisco/cisco and +NOPASSWD sudo access. The interface naming is based on driver (management +interface type is Intel E1000), all E1000 interfaces will be named mgmt and +all VirtIO interfaces will be named virtio. In VM +"/etc/init.d/qemu-guest-agent" you must set "TRANSPORT=isa-serial:/dev/ttyS1" +because ttyS0 is used by serial console and ttyS1 is dedicated for +qemu-guest-agent in QEMU setup. +There is python library for QEMU setup, start and some utilities +"resources/libraries/python/QemuUtils.py" and keyword "Stop and Clear QEMU" for +teardown in resources/libraries/robot/qemu.robot. "Qemu Start" setup one +management interface by default. You can add Vhost-user interfaces by +"Qemu Add Vhost User If" keyword. +Example usage in robot framework test: + +*** Settings *** +| Resource | resources/libraries/robot/qemu.robot + +*** Test Cases *** +| VM test +| | [Tags] | VPP_VM_ENV +| | Qemu Set Node | ${nodes['DUT1']} +| | Qemu Add Vhost User If | /tmp/vhost_sock +| | ${vm}= | Set Variable | ${None} +| | ${vm}= | Qemu Start +| | [Teardown] | Stop and Clear QEMU | ${dut1} | ${vm} + +Note that VPP must be started and cofigured before starting the VM when using +Vhost-user interfaces.