diff options
Diffstat (limited to 'docs')
-rw-r--r-- | docs/testing/developer/design/04-SampleVNF_Design.rst | 7 | ||||
-rw-r--r-- | docs/testing/developer/design/images/l2l3-components.png | bin | 0 -> 14832 bytes | |||
-rw-r--r-- | docs/testing/developer/design/images/state-machine.png | bin | 0 -> 95685 bytes | |||
-rw-r--r-- | docs/testing/user/userguide/04-installation.rst | 13 | ||||
-rw-r--r-- | docs/testing/user/userguide/05-How_to_run_SampleVNFs.rst | 85 | ||||
-rw-r--r-- | docs/testing/user/userguide/06-How_to_use_REST_api.rst | 2 | ||||
-rw-r--r-- | docs/testing/user/userguide/07-Config_files.rst | 2 |
7 files changed, 63 insertions, 46 deletions
diff --git a/docs/testing/developer/design/04-SampleVNF_Design.rst b/docs/testing/developer/design/04-SampleVNF_Design.rst index 2bcf6252..a3332e27 100644 --- a/docs/testing/developer/design/04-SampleVNF_Design.rst +++ b/docs/testing/developer/design/04-SampleVNF_Design.rst @@ -20,6 +20,9 @@ Introduction L2L3 stack comprises of a set of libraries which are commonly used by all other VNF's. +.. image:: images/l2l3-components.png + :width: 800px + It comprises of following components. * Interface Manager @@ -27,7 +30,6 @@ It comprises of following components. * ARP/ND & L2 adjacency Library * L3 stack components - Interface Manager ----------------- @@ -56,7 +58,8 @@ ARP/ND & L2 adjacency Library The ARP/ND state machine is given in the following diagram. -.. image:: state-machine.png +.. image:: images/state-machine.png + :width: 800px This library provides api's for handling ARP/ICMPv4 & ND/ICMPV6 packets handling. It provides api's for creating/deleting & populating an entry. diff --git a/docs/testing/developer/design/images/l2l3-components.png b/docs/testing/developer/design/images/l2l3-components.png Binary files differnew file mode 100644 index 00000000..751c4b7c --- /dev/null +++ b/docs/testing/developer/design/images/l2l3-components.png diff --git a/docs/testing/developer/design/images/state-machine.png b/docs/testing/developer/design/images/state-machine.png Binary files differnew file mode 100644 index 00000000..f0b06199 --- /dev/null +++ b/docs/testing/developer/design/images/state-machine.png diff --git a/docs/testing/user/userguide/04-installation.rst b/docs/testing/user/userguide/04-installation.rst index a415b418..e54243cb 100644 --- a/docs/testing/user/userguide/04-installation.rst +++ b/docs/testing/user/userguide/04-installation.rst @@ -156,12 +156,15 @@ Auto Build - Using script to build VNFs ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * Interactive options: :: + ./tools/vnf_build.sh -i - Follow the steps in the screen from option [1] –> [9] and - select option [8] to build the vnfs. + Follow the steps in the screen from option [1] –> [10] and + select option [9] to build the vnfs. It will automatically download selected DPDK version and any required patches and will setup everything and build VNFs. + Options [8], If RestAPI feature is needed install 'civetweb' + Following are the options for setup: ---------------------------------------------------------- Step 1: Environment setup. @@ -177,13 +180,14 @@ Auto Build - Using script to build VNFs [5] Download DPDK zip [6] Build and Install DPDK [7] Setup hugepages + [8] Download and Build civetweb ---------------------------------------------------------- Step 3: Build VNFs ---------------------------------------------------------- - [8] Build all VNFs (vACL, vCGNAPT, vFW, UDP_Replay, DPPD-PROX) + [9] Build all VNFs (vACL, vCGNAPT, vFW, UDP_Replay, DPPD-PROX) - [9] Exit Script + [10] Exit Script * non-Interactive options: :: @@ -193,6 +197,7 @@ Manual Build ^^^^^^^^^^^^ :: + 1. Download DPDK supported version from dpdk.org * http://dpdk.org/browse/dpdk/snapshot/dpdk-$DPDK_RTE_VER.zip * unzip dpdk-$DPDK_RTE_VER.zip and apply dpdk patches only in case of 16.04 (Not required for other DPDK versions) diff --git a/docs/testing/user/userguide/05-How_to_run_SampleVNFs.rst b/docs/testing/user/userguide/05-How_to_run_SampleVNFs.rst index b087312a..7ba25fe1 100644 --- a/docs/testing/user/userguide/05-How_to_run_SampleVNFs.rst +++ b/docs/testing/user/userguide/05-How_to_run_SampleVNFs.rst @@ -126,6 +126,7 @@ Step 0: Preparing hardware connection Connect Traffic generator and VNF system back to back as shown in previous section :: + TRex port 0 ↔ (VNF Port 0) ↔ (VNF Port 1) ↔ TRex port 1 Step 1: Setting up Traffic generator (TRex) @@ -155,9 +156,13 @@ Auto Build * Interactive options: :: + ./tools/vnf_build.sh -i - Follow the steps in the screen from option [1] –> [9] and select option [8] to build the vnfs. + Follow the steps in the screen from option [1] –> [10] and select option [9] to build the vnfs. It will automatically download selected DPDK version and any required patches and will setup everything and build VNFs. + + Options [8], If RestAPI feature is needed install 'civetweb' + Following are the options for setup: ---------------------------------------------------------- Step 1: Environment setup. @@ -173,7 +178,7 @@ Auto Build [5] Download DPDK zip [6] Build and Install DPDK [7] Setup hugepages - [8] Download civetweb + [8] Download and Build civetweb ---------------------------------------------------------- Step 3: Build VNFs @@ -186,6 +191,7 @@ Auto Build * Non-Interactive options: :: + ./tools/vnf_build.sh -s -d=<dpdk version eg 17.02> if system is behind the proxy ./tools/vnf_build.sh -s -d=<dpdk version eg 17.02> -p=<proxy> @@ -194,45 +200,41 @@ Manual Build ^^^^^^^^^^^^ :: + 1) Download DPDK supported version from dpdk.org - http://dpdk.org/browse/dpdk/snapshot/dpdk-$DPDK_RTE_VER.zip - unzip dpdk-$DPDK_RTE_VER.zip and apply dpdk patches only in case of 16.04 (Not required for other DPDK versions) - cd dpdk - make config T=x86_64-native-linuxapp-gcc O=x86_64-native-linuxapp-gcc - cd x86_64-native-linuxapp-gcc - make + * http://dpdk.org/browse/dpdk/snapshot/dpdk-$DPDK_RTE_VER.zip + * unzip dpdk-$DPDK_RTE_VER.zip and apply dpdk patches only in case of 16.04 (Not required for other DPDK versions) + * cd dpdk + * make config T=x86_64-native-linuxapp-gcc O=x86_64-native-linuxapp-gcc + * cd x86_64-native-linuxapp-gcc + * make 2) Download civetweb 1.9 version from the following link - https://sourceforge.net/projects/civetweb/files/1.9/CivetWeb_V1.9.zip - unzip CivetWeb_V1.9.zip - mv civetweb-master civetweb - cd civetweb - make lib - - 3) Setup huge pages - For 1G/2M hugepage sizes, for example 1G pages, the size must be - specified explicitly and can also be optionally set as the - default hugepage size for the system. For example, to reserve 8G - of hugepage memory in the form of eight 1G pages, the following - options should be passed to the kernel: * default_hugepagesz=1G - hugepagesz=1G hugepages=8 hugepagesz=2M hugepages=2048 - 4) Add this to Go to /etc/default/grub configuration file. - Append “default_hugepagesz=1G hugepagesz=1G hugepages=8 hugepagesz=2M hugepages=2048” - to the GRUB_CMDLINE_LINUX entry. - 5) Setup Environment Variable - export RTE_SDK=<samplevnf>/dpdk - export RTE_TARGET=x86_64-native-linuxapp-gcc - export VNF_CORE=<samplevnf> - or using ./tools/setenv.sh - 6) Build VNFs - cd <samplevnf> - make - or to build individual VNFs - cd <samplevnf>/VNFs/ - make clean - make - The vFW executable will be created at the following location - <samplevnf>/VNFs/vFW/build/vFW + * https://sourceforge.net/projects/civetweb/files/1.9/CivetWeb_V1.9.zip + * unzip CivetWeb_V1.9.zip + * mv civetweb-master civetweb + * cd civetweb + * make lib + + 3) Add this to Go to /etc/default/grub configuration file to setup higepages. + * Append “default_hugepagesz=1G hugepagesz=1G hugepages=8 hugepagesz=2M hugepages=2048” to the GRUB_CMDLINE_LINUX entry. + * execute update-grub + * Reboot after grub setup + + 4) Setup Environment Variable + * export RTE_SDK=<samplevnf>/dpdk + * export RTE_TARGET=x86_64-native-linuxapp-gcc + * export VNF_CORE=<samplevnf> or using ./tools/setenv.sh + + 5) Build VNFs + * cd <samplevnf> + * make + * or To build individual VNFs + * cd <samplevnf>/VNFs/ + * make clean + * make + * The vFW executable will be created at the following location + * <samplevnf>/VNFs/vFW/build/vFW Virtual Firewall - How to run @@ -456,14 +458,17 @@ Step 3: Bind the datapath ports to DPDK ./build/vCGNAPT -p 0x3 -f ./config/sample_swlb_2port_2WT.cfg -s ./config/sample_swlb_2port_2WT.tc d) Run UDP_replay to reflect the traffic on public side. + + :: + cmd: ./build/UDP_Replay -c 0x7 -n 4 -w <pci> -w <pci> -- --no-hw-csum -p <portmask> --config='(port, queue, cpucore)' e.g ./build/UDP_Replay -c 0x7 -n 4 -w 0000:07:00.0 -w 0000:07:00.1 -- --no-hw-csum -p 0x3 --config='(0, 0, 1)(1, 0, 2)' step 4: Run Test using traffic geneator - On traffic generator system: - + On traffic generator system: :: + cd <trex eg v2.28/stl> Update the bench.py to generate the traffic. diff --git a/docs/testing/user/userguide/06-How_to_use_REST_api.rst b/docs/testing/user/userguide/06-How_to_use_REST_api.rst index 64c68a4f..b8c0cbea 100644 --- a/docs/testing/user/userguide/06-How_to_use_REST_api.rst +++ b/docs/testing/user/userguide/06-How_to_use_REST_api.rst @@ -158,10 +158,12 @@ need to be set before launching the application(To be run from samplevnf directory). :: + ./build/vFW (Without the -f & -s option) 1. When VNF(vCGNAPT/vACL/vFW) is launched it waits for user to provide the /vnf/config REST method. :: + e.g curl -X POST -H "Content-Type:application/json" -d '{"pci_white_list": "0000:08:00.0 0000:08:00.1"}' http://<IP>/vnf/config Note: the config is mostly implemented based on existing VNF's. if new parameters diff --git a/docs/testing/user/userguide/07-Config_files.rst b/docs/testing/user/userguide/07-Config_files.rst index 4f3811ec..d5564e8d 100644 --- a/docs/testing/user/userguide/07-Config_files.rst +++ b/docs/testing/user/userguide/07-Config_files.rst @@ -29,6 +29,7 @@ of the VNFs. 1. SWLB, IPv4, Single Port Pair, 1WT: :: + [EAL] w = 05:00.0 w = 05:00.1 @@ -100,6 +101,7 @@ of the VNFs. This configuration doesn't require LOADB and TXRX pipelines :: + [EAL] w = 05:00.0 w = 05:00.1 |