# Copyright 2015 Intel Corporation. # # 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. # ############################ # VNF configuration # ############################ VNF_DIR = 'vnfs/' VNF = 'QemuDpdkVhostUser' # ############################ # Guest configuration # ############################ # directory which is shared to QEMU guests. Useful for exchanging files # between host and guest, VNF specific share will be created # For 2 VNFs you may use ['/tmp/qemu0_share', '/tmp/qemu1_share'] GUEST_SHARE_DIR = ['/tmp/qemu0_share', '/tmp/qemu1_share', \ '/tmp/qemu2_share', '/tmp/qemu3_share', \ '/tmp/qemu4_share', '/tmp/qemu5_share'] # location of guest disk image # For 2 VNFs you may use ['guest1.img', 'guest2.img'] GUEST_IMAGE = ['', '', '', '', '', ''] # guarding timer for VM start up # For 2 VNFs you may use [180, 180] GUEST_TIMEOUT = [180, 180, 180, 180, 180, 180] # Guest images may require different drive types such as ide to mount shared # locations and/or boot correctly. You can modify the types here. GUEST_BOOT_DRIVE_TYPE = 'scsi' GUEST_SHARED_DRIVE_TYPE = 'scsi' # packet forwarding mode supported by testpmd; Please see DPDK documentation # for comprehensive list of modes supported by your version. # e.g. io|mac|mac_retry|macswap|flowgen|rxonly|txonly|csum|icmpecho|... # Note: Option "mac_retry" has been changed to "mac retry" since DPDK v16.07 GUEST_TESTPMD_FWD_MODE = 'csum' # guest loopback application method; supported options are: # 'testpmd' - testpmd from dpdk will be built and used # 'l2fwd' - l2fwd module provided by Huawei will be built and used # 'linux_bridge' - linux bridge will be configured # 'buildin' - nothing will be configured by vsperf; VM image must # ensure traffic forwarding between its interfaces # This configuration option can be overridden by CLI SCALAR option # guest_loopback, e.g. --test-params "guest_loopback=l2fwd" # For 2 VNFs you may use ['testpmd', 'l2fwd'] GUEST_LOOPBACK = ['testpmd', 'testpmd', \ 'testpmd', 'testpmd', \ 'testpmd', 'testpmd'] # username for guest image GUEST_USERNAME = 'root' # password for guest image GUEST_PASSWORD = 'root' # login username prompt for guest image GUEST_PROMPT_LOGIN = '.* login:' # login password prompt for guest image GUEST_PROMPT_PASSWORD = 'Password: ' # standard prompt for guest image GUEST_PROMPT = 'root.*#' # log file for qemu LOG_FILE_QEMU = 'qemu.log' # log file for all commands executed on guest(s) # multiple guests will result in log files with the guest number appended LOG_FILE_GUEST_CMDS = 'guest-cmds.log' # ############################ # Executables # ############################ QEMU_BIN = os.path.join(QEMU_DIR, 'x86_64-softmmu/qemu-system-x86_64') # For 2 VNFs you may use ['eth0', 'eth2'] GUEST_NIC1_NAME = ['eth0', 'eth0', 'eth0', 'eth0', 'eth0', 'eth0'] GUEST_NIC2_NAME = ['eth1', 'eth1', 'eth1', 'eth1', 'eth1', 'eth1'] # For 2 VNFs you may use ['00:00:00:00:00:01', '00:00:00:00:00:03'] GUEST_NET1_MAC = ['00:00:00:00:00:01', '00:00:00:00:00:03', \ '00:00:00:00:00:05', '00:00:00:00:00:07', \ '00:00:00:00:00:09', '00:00:00:00:00:0b'] GUEST_NET2_MAC = ['00:00:00:00:00:02', '00:00:00:00:00:04', \ '00:00:00:00:00:06', '00:00:00:00:00:08', \ '00:00:00:00:00:0a', '00:00:00:00:00:0c'] # For 2 VNFs you may use ['00:04.0', '00:04.0'] GUEST_NET1_PCI_ADDRESS = ['00:04.0', '00:04.0', \ '00:04.0', '00:04.0', \ '00:04.0', '00:04.0'] GUEST_NET2_PCI_ADDRESS = ['00:05.0', '00:05.0', \ '00:05.0', '00:05.0', \ '00:05.0', '00:05.0'] GUEST_MEMORY = ['4096', '4096', '2048', '2048', '2048', '2048'] # test-pmd requires 2 VM cores GUEST_SMP = ['2', '2', '2', '2', '2', '2'] # Host cores to use to affinitize the SMP cores of a QEMU instance # For 2 VNFs you may use [(4,5), (6, 7)] GUEST_CORE_BINDING = [(6, 7), (9, 10), (11, 12), (13, 14), (15, 16), (17, 18)] # Queues per NIC inside guest for multi-queue configuration, requires switch # multi-queue to be enabled for dpdk. Set to 0 for disabled. Can be enabled if # using Vanilla OVS without enabling switch multi-queue. GUEST_NIC_QUEUES = 0 # Virtio-Net vhost thread CPU mapping. If using vanilla OVS with virtio-net, # you can affinitize the vhost-net threads by enabling the below setting. There # is one vhost-net thread per port per queue so one guest with 2 queues will # have 4 vhost-net threads. If more threads are present than CPUs given, the # affinitize will overlap CPUs. VSWITCH_VHOST_NET_AFFINITIZATION = False VSWITCH_VHOST_CPU_MAP = [4,5,8,11] GUEST_START_TIMEOUT = 120 GUEST_OVS_DPDK_DIR = '/root/ovs_dpdk' OVS_DPDK_SHARE = '/mnt/ovs_dpdk_share' # Set the CPU mask for testpmd loopback. To bind to specific guest CPUs use -l # GUEST_TESTPMD_CPU_MASK = '-l 0,1' GUEST_TESTPMD_CPU_MASK = '-c 0x3' # Testpmd multi-core config. Leave at 0's for disabled. Will not enable unless # GUEST_NIC_QUEUES are > 0. For bi directional traffic NB_CORES must be equal # to (RXQ + TXQ). GUEST_TESTPMD_NB_CORES = 0 GUEST_TESTPMD_TXQ = 0 GUEST_TESTPMD_RXQ = 0 # IP addresses to use for Vanilla OVS PVP testing # Consider using RFC 2544/3330 recommended IP addresses for benchmark testing. # Network: 198.18.0.0/15 # Netmask: 255.254.0.0 # Broadcast: 198.19.255.255 # First IP: 198.18.0.1 # Last IP: 198.19.255.254 # Hosts: 131070 # # ARP entries for the IXIA ports and the bridge you are using: VANILLA_TGEN_PORT1_IP = '1.1.1.10' VANILLA_TGEN_PORT1_MAC = 'AA:BB:CC:DD:EE:FF' VANILLA_TGEN_PORT2_IP = '1.1.2.10' VANILLA_TGEN_PORT2_MAC = 'AA:BB:CC:DD:EE:F0' VANILLA_BRIDGE_IP = ['1.1.1.5/16', '1.1.1.6/16', \ '1.1.1.7/16', '1.1.1.8/16', \ '1.1.1.9/16', '1.1.1.10/16'] VANILLA_NIC1_IP_CIDR = ['192.168.1.2/24', '192.168.1.4/24', \ '192.168.1.6/24', '192.168.1.8/24', \ '192.168.1.10/24', '192.168.1.12/24'] VANILLA_NIC2_IP_CIDR = ['192.168.1.3/24', '192.168.1.5/24', \ '192.168.1.7/24', '192.168.1.9/24', \ '192.168.1.11/24', '192.168.1.13/24'] VNF_AFFINITIZATION_ON = True