Name: vmx-docker-lwaftr
Owner: Juniper Networks
Description: vMX Lightweight 4over6 Virtual Network Function with Snabb in a Docker Container
Created: 2016-11-15 14:02:29.0
Updated: 2018-03-22 14:29:46.0
Pushed: 2018-01-28 07:18:07.0
Size: 13061
Language: Python
GitHub Committers
User | Most Recent Commit | # Commits |
---|
Other Committers
User | Most Recent Commit | # Commits |
---|
The vmx-docker-lwaftr Docker Container contains everything thats required to successfully launch vMX 16.1R3 and newer images with a configuration file and license key. This document describes how that Container can be built from source. The actual vMX images is NOT part of the Container. It will be loaded from the official vMX tar file placed in the local directory from where the Container is launched.
Consult the Juniper White Paper on vMX Lightweight 4over6 Virtual Network Function for a solution overview and listen to the podcast on Software Gone Wild by Ivan Pepelnjak, Dec 2016: Blog, MP3.
The Container vmx-docker-lwaftr is based on the official Ubuntu Docker 14.04.5 base Container and includes the following elements:
The build process requires a Docker Engine and the make tool. Please follow the official Install Docker Engine on Linux guide. Docker engine 1.12.1 or newer is required to run the lwaftr1 simulation in the tests directory.
The Qemu patch used to build Qemu comes from https://github.com/snabbco/snabb/pull/332.
Clone the repo with submodules:
clone --recursive https://github.com/Juniper/vmx-docker-lwaftr
Or to clone a specific version by tag, use git option '-b' to specify a specific tag:
clone --recursive -b v1.1.19 https://github.com/juniper/vmx-docker-lwaftr
A single top level execution of make will build Snabb, Qemu and, dumb-init with a temporary build container and create the vmx-docker-lwaftr Docker container plus the b4cpe client simulator container.
The name and version of the Container can be found the toplevel file VERSION:
t VERSION
docker-lwaftr:v1.2.0
iget@st:~/vmx-docker-lwaftr$ docker images
SITORY TAG IMAGE ID CREATED SIZE
docker-lwaftr v1.2.0 2779b5c29172 About a minute ago 253.2 MB
dqemu latest dfcbe71b7896 2 minutes ago 432.5 MB
dsnabb latest 60f090d9d3e0 4 minutes ago 344.7 MB
d-dumb-init latest 866eb14689e5 6 minutes ago 347.8 MB
e v0.1 fb4f557e6249 3 days ago 258.6 MB
tu 14.04.4 38c759202e30 10 weeks ago 196.6 MB
The image build be removed via 'make clean' from the qemu, respectively snabb directory. Only the 'vmx-docker-lwaftr' Container is required.
To save the vmx-docker-lwaftr Container into an image file use:
cker save -o vmx-docker-lwaftr-v1.2.0.img vmx-docker-lwaftr:v1.2.0
-l vmx-docker-lwaftr-v1.2.0.img
------ 1 mwiget staff 262911488 Sep 11 21:40 vmx-docker-lwaftr-v1.2.0.img
er run --name <name> --rm -v \$PWD:/u:ro \\
-privileged -i -t marcelwiget/vmx-docker-lwaftr[:version] \\
c <junos_config_file> -I identity [-l license_file]\\
-V <# of cores>] [-W <# of cores>] [-P <cores>] [-R <cores>] \\
-m <kbytes>] [-M <kBytes>] \\
image> <pci-address/core> [<pci-address/core> ...]
rsion] Container version. Defaults to :latest
\$PWD:/u:ro Required to access a file in the current directory
docker is executed from (ro forces read-only access)
The file will be copied from this location
age> vMX distribution tar file, e.g. vmx-bundle-16.1R3.10.tgz
i-address/core> [<pci-address/core> ..]
One or more PCI addresses and physical core to lock
the Snabb process to. For simulation purposes use
'tap' instead of the pci-address.
username,password for the JETapp to communicate with the Junos
control plane or ssh private key file. Must also be configured in
the Junos config with super-user privileges
Junos configuration file
Junos license key file
Specify the amount of memory for the vRE/VCP (default $VCPMEM kB)
Specify the amount of memory for the vPFE/VFP (default $VFPMEM kB)
Cores to pin the VFP to via numactl --physcpubind <cores>
Cores to pin the VCP to via numactl --physcpubind <cores>
number of virtual cores to assign to VCP (default 1)
number of virtual cores to assign to VFP (default 3)
launch debug shell before launching vMX and before existing the container
See tests/run0.sh, tests/run1.sh and tests/run2.sh for examples on how to launch. The vMX distribution tar file must be on the local directory from which the container is launched.