Skip to content

Commit

Permalink
- Make mtcp-dpdk installation script more usable.
Browse files Browse the repository at this point in the history
- Updated README.netmap guideline.
  • Loading branch information
ajamshed committed Aug 15, 2018
1 parent d534058 commit 29efeb2
Show file tree
Hide file tree
Showing 4 changed files with 124 additions and 5 deletions.
17 changes: 17 additions & 0 deletions README
Expand Up @@ -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 -
----------------
Expand Down Expand Up @@ -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:
Expand Down
27 changes: 27 additions & 0 deletions README.md
Expand Up @@ -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***

Expand Down Expand Up @@ -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
Expand Down
63 changes: 58 additions & 5 deletions README.netmap
@@ -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-
--------------------------------------------------------------------------------------------------
Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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
Expand All @@ -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)
Expand Down
22 changes: 22 additions & 0 deletions setup_linux_env.sh
@@ -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"

0 comments on commit 29efeb2

Please sign in to comment.