- Make mtcp-dpdk installation script more usable.

- Updated README.netmap guideline.
master
Asim Jamshed 2018-08-15 11:02:43 -04:00
parent d5340582fb
commit 29efeb2a87
4 changed files with 124 additions and 5 deletions

17
README
View File

@ -148,6 +148,15 @@ and RTE_TARGET environment variables.
6. Run the applications!
7. You can revert back all your changes by running the following script.
# bash setup_linux_env.sh
Press [29] to unbind the Ethernet ports
Press [30] to remove igb_uio.ko driver
Press [33] to remove hugepage mappings
Press [34] to quit the tool
- ONVM VERSION -
----------------
@ -196,7 +205,15 @@ Also, no core overlap between applications and onvm_mgr is allowed.
6. Run the applications!
7. You can revert back all your changes by running the following script.
# bash setup_linux_env.sh
Press [29] to unbind the Ethernet ports
Press [30] to remove igb_uio.ko driver
Press [33] to remove hugepage mappings
Press [34] to quit the tool
- Notes -
Once you have started onvm_mgr, sometimes an mTCP application may fail to get launched due
to a error(s) resembling the one mentioned below:

View File

@ -170,6 +170,19 @@ mTCP can be prepared in three ways.
5. Run the applications!
6. You can revert back all your changes by running the following script.
```bash
# bash setup_linux_env.sh
```
Press [29] to unbind the Ethernet ports
Press [30] to remove igb_uio.ko driver
Press [33] to remove hugepage mappings
Press [34] to quit the tool
***ONVM VERSION***
@ -220,6 +233,20 @@ ONVM basics are explained in https://github.com/sdnfv/openNetVM.
6. Run the applications!
7. You can revert back all your changes by running the following script.
```bash
# bash setup_linux_env.sh
```
Press [29] to unbind the Ethernet ports
Press [30] to remove igb_uio.ko driver
Press [33] to remove hugepage mappings
Press [34] to quit the tool
**Notes**
Once you have started onvm_mgr, sometimes an mTCP application may fail to get launched due

View File

@ -1,11 +1,13 @@
- NETMAP VERSION -
------------------
-*-*-*--*-*-*--*-*-*--*-*-*--*-*-*--*-*-*--*-*-*--*-*-*--*-*-*--*-*-*--*-*-*--*-*-*--*-*-*--*-*-*-
-*-*-*--*-*-*--*-*-*--*-*-*--*-*-*--*-*-*--*-*-*--*-*-*--*-*-*--*-*-*--*-*-*--*-*-*--*-*-*--*-*-*-*-*-*-
-A- Tested with linux-3.13.0-121-generic & netmap commit: 8f3f79e4ca168c6d3220e7a5198a5778b030445e,
and,
-B- Tested with linux-3.13.0-121-generic & netmap commit: 21227d47ae995812412d1de22855c7fa8260f53a
-*-*-*--*-*-*--*-*-*--*-*-*--*-*-*--*-*-*--*-*-*--*-*-*--*-*-*--*-*-*--*-*-*--*-*-*--*-*-*--*-*-*-
-B- Tested with linux-3.13.0-121-generic & netmap commit: 21227d47ae995812412d1de22855c7fa8260f53a,
and,
-C- Tested with 4.11.12-200.fc25.x86_64+debug & netmap commit: 21227d47ae995812412d1de22855c7fa8260f53a
-*-*-*--*-*-*--*-*-*--*-*-*--*-*-*--*-*-*--*-*-*--*-*-*--*-*-*--*-*-*--*-*-*--*-*-*--*-*-*--*-*-*-*-*-*-
FOR -A-
--------------------------------------------------------------------------------------------------
@ -34,7 +36,7 @@ FOR -A-
FOR -B-
--------------------------------------------------------------------------------------------------
1. Install the netmap driver and the corresponding ixgbe-5.3.7/ driver
- please got through netmap's documentaiton for installation
- please go through netmap's documentaiton for installation
instructions. We used the following command(s) to compile the driver
# cd LINUX; ./configure; make
@ -72,10 +74,60 @@ FOR -B-
# make
# sudo insmod ./netmap.ko
# sudo insmod ./ixgbe/ixgbe.ko
For -C-
--------------------------------------------------------------------------------------------------
1. Install the netmap driver and the corresponding i40e-2.4.6/ driver
- please go through netmap's documentation for installation
instructions. We used the following command(s) to compile the driver
# cd LINIX; ./configure; make
- To run mTCP clients correctly, you need to modify the RSS seed in
i40e_main.c:i40e_config_rss_aq() & i40e_main.c:i40e_config_rss_reg()
functions. Our mTCP stack uses a specific RSS seed (mentioned below).
static unsigned char sym_seed[] = {
0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
0x05, 0x05
};
static int i40e_config_rss_aq(struct i40e_vsi *vsi, const u8 *seed,
u8 *lut, u16 lut_size)
{
struct i40e_pf *pf = vsi->back;
struct i40e_hw *hw = &pf->hw;
int ret = 0;
seed = sym_seed;
...
}
FOR BOTH -A- & -B- (CONTINUED)
static int i40e_config_rss_aq(struct i40e_vsi *vsi, const u8 *seed,
u8 *lut, u16 lut_size)
{
struct i40e_pf *pf = vsi->back;
struct i40e_hw *hw = &pf->hw;
int ret = 0;
seed = sym_seed;
...
}
- Make sure that the underlying kernel module is correctly
working. You can use sample applications to validate your
setup.
# make
# sudo insmod ./netmap.ko
# sudo insmod ./i40e/i40e.ko
FOR BOTH -A- & -B- & -C- (CONTINUED)
--------------------------------------------------------------------------------------------------
2. For optimum performance you are suggested to bind NICS IRQs to arbitrary
CPUs. Please use affinity-netmap.py script for this purpose. The current
@ -86,6 +138,7 @@ FOR BOTH -A- & -B- (CONTINUED)
- Disable flow control in Ethernet layer
# sudo ethtool -A ${IFACE} rx off
# sudo ethtool -A ${IFACE} tx off
# sudo ethtool -K ${IFACE} gro off
- Disable lro (large receive offload) in Ethernet device. mTCP
does not support large packet sizes (> 1514B) yet)

22
setup_linux_env.sh Normal file
View File

@ -0,0 +1,22 @@
#!/bin/bash
GREEN='\033[0;32m'
NC='\033[0m'
# Get to script directory
cd $(dirname ${BASH_SOURCE[0]})/
# Remove dpdk_iface.ko module
export RTE_SDK=$PWD/dpdk
printf "${GREEN}Removing dpdk_iface module...\n $NC"
if lsmod | grep dpdk_iface &> /dev/null ; then
sudo rmmod dpdk_iface.ko
else
:
fi
# Compile dpdk and configure system
bash $RTE_SDK/usertools/dpdk-setup.sh
printf "${GREEN}Goodbye!$NC\n"