1 .. This work is licensed under a Creative Commons Attribution 4.0 International
3 .. http://creativecommons.org/licenses/by/4.0
4 .. (c) OPNFV, National Center of Scientific Research "Demokritos" and others.
6 ============================
7 vACL - Installation Guide
8 ============================
13 After downloading (or doing a git clone) in a directory (samplevnf)
16 * DPDK 16.04: Downloaded and installed via vnf_build.sh or manually from [here](http://fast.dpdk.org/rel/dpdk-16.04.tar.xz)
17 Both the options are available as part of vnf_build.sh below.
22 ###### Environment variables
24 Apply all the additional patches in 'patches/dpdk_custom_patch/' and build dpdk
27 export RTE_SDK=<dpdk 16.04 directory>
28 export RTE_TARGET=x86_64-native-linuxapp-gcc
30 This is done by vnf_build.sh script.
34 $ ./tools/vnf_build.sh in samplevnf root folder
36 Follow the steps in the screen from option [1] --> [8] and select option [7]
38 It will automatically download DPDK 16.04 and any required patches and will setup
39 everything and build vACL VNFs.
41 Following are the options for setup:
45 ----------------------------------------------------------
46 Step 1: Environment setup.
47 ----------------------------------------------------------
48 [1] Check OS and network connection
50 ----------------------------------------------------------
51 Step 2: Download and Install
52 ----------------------------------------------------------
55 [4] Download DPDK zip (optional, use it when option 4 fails)
59 ----------------------------------------------------------
61 ----------------------------------------------------------
66 An vACL executable will be created at the following location
67 samplevnf/VNFs/vACL/build/vACL
72 1. Download DPDK 16.04 from dpdk.org
73 - http://dpdk.org/browse/dpdk/snapshot/dpdk-16.04.zip
74 2. unzip dpdk-16.04 and apply dpdk patch
76 - patch -p0 < VNF_CORE/patches/dpdk_custom_patch/rte_pipeline.patch
77 - patch -p1 < VNF_CORE/patches/dpdk_custom_patch/i40e-fix-link-management.patch
78 - patch -p1 < VNF_CORE/patches/dpdk_custom_patch/i40e-fix-Rx-hang-when-disable-LLDP.patch
79 - patch -p1 < VNF_CORE/patches/dpdk_custom_patch/i40e-fix-link-status-change-interrupt.patch
80 - patch -p1 < VNF_CORE/patches/dpdk_custom_patch/i40e-fix-VF-bonded-device-link-down.patch
82 - make config T=x86_64-native-linuxapp-gcc O=x86_64-native-linuxapp-gcc
83 - cd x86_64-native-linuxapp-gcc
86 - For 1G/2M hugepage sizes, for example 1G pages, the size must be specified
87 explicitly and can also be optionally set as the default hugepage size for
88 the system. For example, to reserve 8G of hugepage memory in the form of
89 eight 1G pages, the following options should be passed to the kernel:
90 * default_hugepagesz=1G hugepagesz=1G hugepages=8 hugepagesz=2M hugepages=2048
91 - Add this to Go to /etc/default/grub configuration file.
92 - Append "default_hugepagesz=1G hugepagesz=1G hugepages=8 hugepagesz=2M hugepages=2048"
93 to the GRUB_CMDLINE_LINUX entry.
94 3. Setup Environment Variable
95 - export RTE_SDK=<samplevnf>/dpdk-16.04
96 - export RTE_TARGET=x86_64-native-linuxapp-gcc
97 - export VNF_CORE=<samplevnf>
98 or using ./toot/setenv.sh
100 - cd <samplevnf>/VNFs/vACL
103 5. The vACL executable will be created at the following location
104 - <samplevnf>/VNFs/vACL/build/vACL
109 Setup Port to run VNF:
110 ----------------------
112 1. cd <samplevnf>/dpdk-16.04
113 3. ./tool/dpdk_nic_bind.py --status <--- List the network device
114 2. ./tool/dpdk_nic_bind.py -b igb_uio <PCI Port 0> <PCI Port 1>
115 .. _More details: http://dpdk.org/doc/guides-16.04/linux_gsg/build_dpdk.html#binding-and-unbinding-network-ports-to-from-the-kernel-modules
117 Make the necessary changes to the config files to run the vACL VNF
118 eg: ports_mac_list = 00:00:00:30:21:00 00:00:00:30:21:00
122 Update the configuration according to system configuration.
125 ./build/vACL -p <port mask> -f <config> -s <script> - SW_LoadB
126 ./build/vACL -p <port mask> -f <config> -s <script> -hwlb <num_WT> - HW_LoadB
134 cd <samplevnf>/VNFs/vACL/
135 ./build/vACL -p 0x3 -f ./config/IPv4_swlb_acl_1LB_1t.cfg -s ./config/ IPv4_swlb_acl.tc
140 cd <samplevnf>/VNFs/vACL/
141 ./build/vACL -p 0x3 -f ./config/IPv4_hwlb_acl_1LB_1t.cfg -s ./config/IPv4_hwlb_acl.tc --hwlb 1
148 cd <samplevnf>/VNFs/vACL/
149 ./build/vACL -p 0x3 -f ./config/IPv6_swlb_acl_1LB_1t.cfg -s ./config/IPv6_swlb_acl.tc
154 cd <samplevnf>/VNFs/vACL/
155 ./build/vACL -p 0x3 -f ./config/IPv6_hwlb_acl_1LB_1t.cfg -s ./config/IPv6_hwlb_acl.tc --hwlb 1
157 vACL execution on BM & SRIOV:
158 --------------------------------
160 To run the VNF, execute the following:
161 samplevnf/VNFs/vACL# ./build/vACL -p 0x3 -f ./config/IPv4_swlb_acl_1LB_1t.cfg -s ./config/ IPv4_swlb_acl.tc
163 -p PORTMASK: Hexadecimal bitmask of ports to configure
164 -f CONFIG FILE: vACL configuration file
165 -s SCRIPT FILE: vACL script file
167 vACL execution on OVS:
168 -------------------------
170 To run the VNF, execute the following:
171 samplevnf/VNFs/vACL# ./build/vACL -p 0x3 -f ./config/IPv4_swlb_acl_1LB_1t.cfg -s ./config/ IPv4_swlb_acl.tc --disable-hw-csum
173 -p PORTMASK: Hexadecimal bitmask of ports to configure
174 -f CONFIG FILE: vACL configuration file
175 -s SCRIPT FILE: vACL script file
176 --disable-hw-csum :Disable TCP/UDP hw checksum