summaryrefslogtreecommitdiffstats
path: root/docs/UDP_Replay
diff options
context:
space:
mode:
authorVishwesh M Rudramuni <vishwesh.m.rudramuni@intel.com>2017-05-26 11:11:15 +0530
committerDeepak S <deepak.s@linux.intel.com>2017-05-30 14:22:57 +0000
commit1b0802cbf10ac4d8911f0916d4ba0b02010924c8 (patch)
tree37bc2b655403f30b197ade7ca0c2054bfdbdfe47 /docs/UDP_Replay
parente7773602bfca7cb9c25beb42dfa5d9c91ec459fd (diff)
[SAMPLEVNF] Adding UDP Replay VNF
JIRA: SAMPLEVNF-8 This code adds support for UDP Replay which acts as a reflector of all the UDP packets on the requested port. Change-Id: If8330580f58c785736e578e815d15d983ce20209 Signed-off-by: Vishwesh M Rudramuni <vishwesh.m.rudramuni@intel.com> Signed-off-by: Deepak S <deepak.s@linux.intel.com>
Diffstat (limited to 'docs/UDP_Replay')
-rw-r--r--docs/UDP_Replay/INSTALL.rst124
-rw-r--r--docs/UDP_Replay/README.rst71
-rw-r--r--docs/UDP_Replay/RELEASE_NOTES.rst68
3 files changed, 263 insertions, 0 deletions
diff --git a/docs/UDP_Replay/INSTALL.rst b/docs/UDP_Replay/INSTALL.rst
new file mode 100644
index 00000000..334f9d8e
--- /dev/null
+++ b/docs/UDP_Replay/INSTALL.rst
@@ -0,0 +1,124 @@
+.. 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.
+
+============================
+UDP_Replay - Installation Guide
+============================
+
+
+UDP_Replay 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
+
+Apply all the additional patches in 'patches/dpdk_custom_patch/' and build dpdk
+
+::
+ export RTE_SDK=<dpdk 16.04 directory>
+ 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]
+to build the vnfs.
+It will automatically download DPDK 16.04 and any required patches and will setup
+everything and build UDP_Replay.
+
+Following are the options for setup:
+
+::
+
+ ----------------------------------------------------------
+ Step 1: Environment setup.
+ ----------------------------------------------------------
+ [1] Check OS and network connection
+
+ ----------------------------------------------------------
+ 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 3: Build VNF
+ ----------------------------------------------------------
+ [7] Build VNF
+
+ [8] Exit Script
+
+An UDP_Replay executable will be created at the following location
+samplevnf/VNFs/UDP_Replay/build/UDP_Replay
+
+
+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
+ - build dpdk
+ - 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.
+3. Setup Environment Variable
+ - export RTE_SDK=<samplevnf>/dpdk-16.04
+ - export RTE_TARGET=x86_64-native-linuxapp-gcc
+ - export VNF_CORE=<samplevnf>
+ or using ./toot/setenv.sh
+4. Build UDP_Replay application
+ - cd <samplevnf>/VNFs/UDP_Replay
+ - make clean
+ - make
+5. An UDP_Replay executable will be created at the following location
+ - <samplevnf>/VNFs/UDP_Replay/build/UDP_Replay
+
+Run
+====
+
+Setup Port to run VNF:
+----------------------
+::
+ 1. cd <samplevnf>/dpdk
+ 3. ./tool/dpdk_nic_bind.py --status <--- List the network device
+ 2. ./tool/dpdk_nic_bind.py -b igb_uio <PCI Port 0> <PCI Port 1>
+ .. _More details: http://dpdk.org/doc/guides-16.04/linux_gsg/build_dpdk.html#binding-and-unbinding-network-ports-to-from-the-kernel-modules
+
+
+Run UDP_Replay
+----------
+::
+ cd <samplevnf>/VNFs/UDP_Replay
+ ./build/UDP_Replay -c 0xf -n 4 -- -p 0x1 --config="(0,0,1)"
+
diff --git a/docs/UDP_Replay/README.rst b/docs/UDP_Replay/README.rst
new file mode 100644
index 00000000..f5e2af36
--- /dev/null
+++ b/docs/UDP_Replay/README.rst
@@ -0,0 +1,71 @@
+.. 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.
+
+========================================================
+UDP_Replay
+========================================================
+
+1 Introduction
+==============
+This application implements UDP_Replay. The UDP Replay application is a simple example of
+packet processing using the DPDK. The application performs UDP replay. This application
+is based on l3fwd application from dpdk. Packets are replayed back over the same port as
+received. This application is used in VNF approximation.
+
+2 Compiling the Application
+===========================
+
+To compile the application:
+
+Go to the sample application directory:
+cd samplevnf/VNF's/UDP_Replay
+
+export RTE_SDK=/path/to/rte_sdk
+cd ${RTE_SDK}/examples/l3fwd
+Set the target (a default target is used if not specified). For example:
+
+export RTE_TARGET=x86_64-native-linuxapp-gcc
+See the DPDK Getting Started Guide for possible RTE_TARGET values.
+
+Build the application:
+make
+
+3 Running the Application
+===========================
+
+The application has a number of command line options:
+
+./build/UDP_Replay [EAL options] -- -p PORTMASK
+ --config(port,queue,lcore)[,(port,queue,lcore)]
+
+-p PORTMASK: Hexadecimal bitmask of ports to configure
+--config (port,queue,lcore)[,(port,queue,lcore)]: Determines which queues from
+which ports are mapped to which cores.
+
+For e.g
+
+For single port
+./build/UDP_Replay -c 0xf -n 4 -- -p 0x1 --config="(0,0,1)"
+
+For dual port
+./build/UDP_Replay -c 0xf -n 4 -- -p 0x3 --config="(0,0,1),(1,0,2)"
+
+In this command:
+
+The -l option enables cores 1, 2
+The -p option enables ports 0 and 1
+The –config option enables one queue on each port and maps each (port,queue)
+pair to a specific core. The following table shows the mapping in
+this example:
+
+Port Queue lcore Description
+ 0 0 1 Map queue 0 from port 0 to lcore 1.
+ 1 0 2 Map queue 0 from port 1 to lcore 2.
+
+For ARP/ICMP support
+use the sample config provided under samplevnf/VNFs/UDP_Replay/sample.cfg
+
+For e.g
+./build/UDP_Replay -c 0xf -n 4 -- -s sample_ipv4.cfg -p 0x1 --config="(0,0,1),(1,0,2)"
diff --git a/docs/UDP_Replay/RELEASE_NOTES.rst b/docs/UDP_Replay/RELEASE_NOTES.rst
new file mode 100644
index 00000000..0b390b1a
--- /dev/null
+++ b/docs/UDP_Replay/RELEASE_NOTES.rst
@@ -0,0 +1,68 @@
+.. 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.
+
+=========================================================
+UDP_Replay
+=========================================================
+
+1. Introduction
+================
+
+This is a beta release for Sample UDP_Replay application.
+This UDP_Replay can application can be run independently (refer INSTALL.rst).
+
+2. User Guide
+===============
+Refer to README.rst for further details on UDP_Replay, HLD, features supported, test
+plan. For build configurations and execution requisites please refer to
+INSTALL.rst.
+
+3. Feature for this release
+===========================
+This release supports following features as part of UDP_Replay:
+ - L2l3 stack
+ - Interface Manager
+ - ARP solicitation & response. implements ARP states
+ - Implements ICMPv4 support handling echo request/response messages
+ - ICMPv6 support handling echo request/response messages
+ - ND handling neighbour solicitation & neighbour advertisement messages
+
+4. System requirements - OS and kernel version
+==============================================
+This is supported on Ubuntu 14.04 and Ubuntu 16.04 and kernel version less than 4.5
+
+ VNFs on BareMetal support:
+ OS: Ubuntu 14.04 or 16.04 LTS
+ kernel: < 4.5
+ http://releases.ubuntu.com/16.04/
+ Download/Install the image: ubuntu-16.04.1-server-amd64.iso
+
+ VNFs on Standalone Hypervisor
+ HOST OS: Ubuntu 14.04 or 16.04 LTS
+ http://releases.ubuntu.com/16.04/
+ Download/Install the image: ubuntu-16.04.1-server-amd64.iso
+ - OVS (DPDK) - 2.5
+ - kernel: < 4.5
+ - Hypervisor - KVM
+ - VM OS - Ubuntu 16.04/Ubuntu 14.04
+
+5. Known Bugs and limitations
+=============================
+ - Hadware Load Balancer feature is supported on fortville nic FW version 4.53 and below.
+ - Hardware Checksum offload is not supported for IPv6 traffic.
+
+6. Future Work
+==============
+Following would be possible enhancement functionalities
+ - Automatic enable/disable of synproxy
+ - Support TCP timestamps with synproxy
+ - FTP ALG integration
+ - Performance optimization on different platforms
+
+7. References
+=============
+Following links provides additional information
+ .. _QUICKSTART: http://dpdk.org/doc/guides-16.04/linux_gsg/quick_start.html
+ .. _DPDKGUIDE: http://dpdk.org/doc/guides-16.04/prog_guide/index.html