From 29bfcbc9b8c1d9b1ebe62e3170524f0c53467110 Mon Sep 17 00:00:00 2001 From: Anand B Jyoti Date: Tue, 4 Jul 2017 10:26:39 +0530 Subject: docs: Update install and release docs for DPDK migration support JIRA: SAMPLEVNF-48 Updating INSTALL.rst and RELEASE_NOTES.rst for DPDK migration support. The additional files are created to make it as per the opnfv document standard to generate the html files. Change-Id: I4b0af4c3afeef91fc806285b02c0ce47d61ebfbd Signed-off-by: Anand B Jyoti --- docs/INSTALL.rst | 34 +++++++ docs/RELEASE_NOTES.rst | 32 +++++++ docs/index.rst | 13 +++ docs/vACL/INSTALL.rst | 205 +++++++++++++++++++++++++-------------- docs/vACL/README.rst | 85 ++++++++++------- docs/vACL/RELEASE_NOTES.rst | 64 ++++++++----- docs/vACL/index.rst | 11 +++ docs/vCGNAPT/INSTALL.rst | 175 +++++++++++++++++++++------------- docs/vCGNAPT/README.rst | 58 ++++++----- docs/vCGNAPT/RELEASE_NOTES.rst | 68 +++++++------ docs/vCGNAPT/index.rst | 11 +++ docs/vFW/INSTALL.rst | 212 +++++++++++++++++++++++++---------------- docs/vFW/README.rst | 78 +++++++++------ docs/vFW/RELEASE_NOTES.rst | 66 ++++++++----- docs/vFW/index.rst | 11 +++ 15 files changed, 733 insertions(+), 390 deletions(-) create mode 100644 docs/INSTALL.rst create mode 100644 docs/RELEASE_NOTES.rst create mode 100644 docs/index.rst create mode 100644 docs/vACL/index.rst create mode 100644 docs/vCGNAPT/index.rst create mode 100644 docs/vFW/index.rst (limited to 'docs') diff --git a/docs/INSTALL.rst b/docs/INSTALL.rst new file mode 100644 index 00000000..6c321846 --- /dev/null +++ b/docs/INSTALL.rst @@ -0,0 +1,34 @@ +.. this work is licensed under a creative commons attribution 4.0 international +.. license. +.. http://creativecommons.org/licenses/by/4.0 +.. (c) opnfv, national center of scientific research "demokritos" and others. + +============================ +samplevf Installation Guide +============================ + +Introduction +============ +This project provides a placeholder for various sample VNF (Virtual Network Function) +development which includes example reference architecture and optimization methods +related to VNF/Network service for high performance VNF + +The sample VNFs are Open Source approximations* of Telco grade VNF’s using +optimized VNF + NFVi Infrastructure libraries, with Performance Characterization +of Sample† Traffic Flows. + +:: + + * Not a commercial product. Encourage the community to contribute and close the feature gaps. + † No Vendor/Proprietary Workloads + +VNF supported +============= + + - Carrier Grade Network Address Translation (CG-NAT) VNF + - Firewall (vFW) VNF + - Access Control List (vACL) VNF + +Please refer docs folder for individual VNF Installation guide. + +Note:- Each VNF should include a installation document explain the process to install and run VNF. diff --git a/docs/RELEASE_NOTES.rst b/docs/RELEASE_NOTES.rst new file mode 100644 index 00000000..fa9ab919 --- /dev/null +++ b/docs/RELEASE_NOTES.rst @@ -0,0 +1,32 @@ +.. this work is licensed under a creative commons attribution 4.0 international +.. license. +.. http://creativecommons.org/licenses/by/4.0 +.. (c) opnfv, national center of scientific research "demokritos" and others. + +========================== +samplevnf Release Notes +========================== + +Introduction +============ +This project provides a placeholder for various sample VNF (Virtual Network Function) +development which includes example reference architecture and optimization methods +related to VNF/Network service for high performance VNFs. + +The sample VNFs are Open Source approximations* of Telco grade VNF’s using +optimized VNF + NFVi Infrastructure libraries, with Performance Characterization +of Sample† Traffic Flows. + +:: + + * Not a commercial product. Encourage the community to contribute and close the feature gaps. + † No Vendor/Proprietary Workloads + +VNF supported +============= + + - Carrier Grade Network Address Translation (CG-NAT) VNF + - Firewall (vFW) VNF + - Access Control List (vACL) VNF + +Please refer docs folder for individual VNF release notes. diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 00000000..050fa670 --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,13 @@ +#################### +samplevnf +#################### + +.. toctree:: + :numbered: + :maxdepth: 2 + + RELEASE_NOTES.rst + INSTALL.rst + vCGNAPT/index.rst + vFW/index.rst + vACL/index.rst diff --git a/docs/vACL/INSTALL.rst b/docs/vACL/INSTALL.rst index e00c6b24..7f21fc1f 100644 --- a/docs/vACL/INSTALL.rst +++ b/docs/vACL/INSTALL.rst @@ -12,165 +12,222 @@ vACL Compilation After downloading (or doing a git clone) in a directory (samplevnf) -###### Dependencies -* DPDK 16.04: Downloaded and installed via vnf_build.sh or manually from [here](http://fast.dpdk.org/rel/dpdk-16.04.tar.xz) -Both the options are available as part of vnf_build.sh below. -* libpcap-dev -* libzmq -* libcurl - -###### Environment variables - +------------- +Dependencies +------------- + +- DPDK supported versions ($DPDK_RTE_VER = 16.04, 16.11, 17.02 or 17.05): Downloaded and installed via vnf_build.sh or manually from [here] (http://fast.dpdk.org/rel/) +- libpcap-dev +- libzmq +- libcurl + +--------------------- +Environment variables +--------------------- Apply all the additional patches in 'patches/dpdk_custom_patch/' and build dpdk :: - export RTE_SDK= + + export RTE_SDK= export RTE_TARGET=x86_64-native-linuxapp-gcc This is done by vnf_build.sh script. Auto Build: -========== +=========== $ ./tools/vnf_build.sh in samplevnf root folder -Follow the steps in the screen from option [1] --> [8] and select option [7] +Follow the steps in the screen from option [1] --> [9] and select option [8] to build the vnfs. -It will automatically download DPDK 16.04 and any required patches and will setup -everything and build vACL VNFs. +It will automatically download selected DPDK version and any required patches +and will setup everything and build vACL VNFs. Following are the options for setup: :: - ---------------------------------------------------------- - Step 1: Environment setup. - ---------------------------------------------------------- - [1] Check OS and network connection + ---------------------------------------------------------- + Step 1: Environment setup. + ---------------------------------------------------------- + [1] Check OS and network connection + [2] Select DPDK RTE version - ---------------------------------------------------------- - Step 2: Download and Install - ---------------------------------------------------------- - [2] Agree to download - [3] Download packages - [4] Download DPDK zip (optional, use it when option 4 fails) - [5] Install DPDK - [6] Setup hugepages + ---------------------------------------------------------- + Step 2: Download and Install + ---------------------------------------------------------- + [3] Agree to download + [4] Download packages + [5] Download DPDK zip + [6] Build and Install DPDK + [7] Setup hugepages - ---------------------------------------------------------- - Step 3: Build VNF - ---------------------------------------------------------- - [7] Build VNF + ---------------------------------------------------------- + Step 3: Build VNFs + ---------------------------------------------------------- + [8] Build all VNFs (vACL, vCGNAPT, vFW, UDP_Replay) - [8] Exit Script + [9] Exit Script An vACL executable will be created at the following location samplevnf/VNFs/vACL/build/vACL Manual Build: -============ -1. Download DPDK 16.04 from dpdk.org - - http://dpdk.org/browse/dpdk/snapshot/dpdk-16.04.zip -2. unzip dpdk-16.04 and apply dpdk patch - - cd dpdk-16.04 - - patch -p0 < VNF_CORE/patches/dpdk_custom_patch/rte_pipeline.patch - - patch -p1 < VNF_CORE/patches/dpdk_custom_patch/i40e-fix-link-management.patch - - patch -p1 < VNF_CORE/patches/dpdk_custom_patch/i40e-fix-Rx-hang-when-disable-LLDP.patch - - patch -p1 < VNF_CORE/patches/dpdk_custom_patch/i40e-fix-link-status-change-interrupt.patch - - patch -p1 < VNF_CORE/patches/dpdk_custom_patch/i40e-fix-VF-bonded-device-link-down.patch +============= +1. Download DPDK supported version from dpdk.org + + - http://dpdk.org/browse/dpdk/snapshot/dpdk-$DPDK_RTE_VER.zip + +2. unzip dpdk-$DPDK_RTE_VER.zip and apply dpdk patches only in case of 16.04 + (Not required for other DPDK versions) + + - cd dpdk + + - patch -p1 < VNF_CORE/patches/dpdk_custom_patch/i40e-fix-link-management.patch + - patch -p1 < VNF_CORE/patches/dpdk_custom_patch/i40e-fix-Rx-hang-when-disable-LLDP.patch + - patch -p1 < VNF_CORE/patches/dpdk_custom_patch/i40e-fix-link-status-change-interrupt.patch + - patch -p1 < VNF_CORE/patches/dpdk_custom_patch/i40e-fix-VF-bonded-device-link-down.patch + - patch -p1 < $VNF_CORE/patches/dpdk_custom_patch/disable-acl-debug-logs.patch + - patch -p1 < $VNF_CORE/patches/dpdk_custom_patch/set-log-level-to-info.patch + - build dpdk - - make config T=x86_64-native-linuxapp-gcc O=x86_64-native-linuxapp-gcc - - cd x86_64-native-linuxapp-gcc - - make + + - make config T=x86_64-native-linuxapp-gcc O=x86_64-native-linuxapp-gcc + - cd x86_64-native-linuxapp-gcc + - make + - 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 - - 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. + + - 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 + - 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. + 3. Setup Environment Variable - - export RTE_SDK=/dpdk-16.04 + + - export RTE_SDK=/dpdk - export RTE_TARGET=x86_64-native-linuxapp-gcc - export VNF_CORE= - or using ./toot/setenv.sh + + or using ./tools/setenv.sh + 4. Build vACL VNFs + - cd /VNFs/vACL - make clean - make + 5. The vACL executable will be created at the following location + - /VNFs/vACL/build/vACL Run ==== -Setup Port to run VNF: ---------------------- +Setup Port to run VNF +---------------------- + :: - 1. cd /dpdk-16.04 - 3. ./tool/dpdk_nic_bind.py --status <--- List the network device - 2. ./tool/dpdk_nic_bind.py -b igb_uio + + For DPDK versions 16.04 + 1. cd /dpdk + 2. ./tools/dpdk_nic_bind.py --status <--- List the network device + 3. ./tools/dpdk_nic_bind.py -b igb_uio .. _More details: http://dpdk.org/doc/guides-16.04/linux_gsg/build_dpdk.html#binding-and-unbinding-network-ports-to-from-the-kernel-modules + For DPDK versions 16.11 + 1. cd /dpdk + 2. ./tools/dpdk-devbind.py --status <--- List the network device + 3. ./tools/dpdk-devbind.py -b igb_uio + .. _More details: http://dpdk.org/doc/guides-16.11/linux_gsg/build_dpdk.html#binding-and-unbinding-network-ports-to-from-the-kernel-modules + + For DPDK versions 17.xx + 1. cd /dpdk + 2. ./usertools/dpdk-devbind.py --status <--- List the network device + 3. ./usertools/dpdk-devbind.py -b igb_uio + .. _More details: http://dpdk.org/doc/guides-17.05/linux_gsg/build_dpdk.html#binding-and-unbinding-network-ports-to-from-the-kernel-modules + + Make the necessary changes to the config files to run the vACL VNF - eg: ports_mac_list = 00:00:00:30:21:00 00:00:00:30:21:00 + eg: ports_mac_list = 00:00:00:30:21:00 00:00:00:30:21:00 -ACL --------------- +----------------- +ACL run commands +----------------- Update the configuration according to system configuration. :: + ./build/vACL -p -f -s