/
VNFs

Anuket Project

VNFs

VLoop-VNFs

Existing Artifacts:


New Vloop-VNFs

Ubuntu:

Steps:

  1. Download bionic mini.iso from https://help.ubuntu.com/community/Installation/MinimalCD , and name it as bionic-64.mini.iso
  2. qemu-img create -f qcow2 /tmp/vloop-vnf.qcow2 10G
  3. virt-install --virt-type kvm --name trusty --ram 1024 --cdrom=/tmp/bionic-64-mini.iso --disk /tmp/vloop-vnf.qcow2,format=qcow2 --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=ubuntutrusty
    1. Complete the installation process - include just openssh-server
  4. Login and install the following:
    1. cloud-init, git, make, ifupdown built-essentials, libnuma-dev, pciutils, bridge-utils, libelf-dev
  5. gcc: newer gcc, for security reasons, have, by default, set with --enable-default-pie (check with gcc -v). This will create linking errors during testpmd build. To overcome this, one option is to we can install a version of gcc (ex: from https://drive.google.com/drive/folders/1xVEATaYAwqvseBzYxKDzJoZ4-Hc_XOJm) with pie not enabled.  Use update-alternatives to set gcc7 to gcc - use command - sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc7 100 
  6. Change the default network names to eth*
    1. Open /etc/default/grub
    2. modify GRUB_CMDLINE_LINUX to GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
    3. sudo grub-mkconfig -o /boot/grub/grub.cfg
  7. Enable Serial Console 
    1. cp /usr/lib/systemd/system/serial-getty@.service /etc/systemd/system/serial-getty@ttyS0.service
    2. edit the file and modify the agetty line: ExecStart=-/sbin/agetty --keep-baud 115200,38400,9600 %I $TERM    <-- Change this parameter
    3. ln -s /etc/systemd/system/serial-getty@ttyS0.service /etc/systemd/system/getty.target.wants/
    4.  Reload the daemon and start the service: # systemctl daemon-reload, # systemctl start serial-getty@ttyS0.service, # systemctl enable serial-getty@ttyS0.service
    5. Open /etc/default/grub
    6. modify GRUB_CMDLINE_LINUX to GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0 console=tty1 console=ttyS0,115200"
    7. sudo grub-mkconfig -o /boot/grub/grub.cfg
  8. enable root login with 'root' password: sudo bash, #passwd, root
  9. All ifdown operations on eth0 and eth1: Add 'eth0' and 'eth1' in /run/network/ifstate.eth0 and /run/network/ifstaet.eth1, respectively. Also add eth0=eth0 and eth1=eth1 in /run/network/ifstate
  10. Perform cleanup; sudo apt-get clean, sudo apt-get autoremove --purge, 
  11. Zeroing the freespace: 
    1. dd if=/dev/zero of=/tmp/zeros bs=1M
    2. rm /tmp/zeros
  12. Shutdown the VM.
  13. Compress the image: qemu-img convert -O qcow2 -c vloop-vnf.qcow2 vloop-vnf-small.qcow2


Fedora:




Noisy-Neighbor-VNFs

  1. Based on stress-ng
  2. Based on Spirent cloudstress ( https://github.com/spirent/cloudstress)

Related content

Moselle: Release plan discussion
Moselle: Release plan discussion
More like this
CPU Utilisation case study Configuration
CPU Utilisation case study Configuration
More like this
Libvirt Plugin High Level Design Document
Libvirt Plugin High Level Design Document
More like this
Multidimensional TestVNF
Multidimensional TestVNF
More like this
IEEE NFV-SDN 2018 : Tutorial
IEEE NFV-SDN 2018 : Tutorial
More like this
Testbed
Testbed
More like this