Difference between revisions of "VPP/Using mTCP user mode TCP stack with VPP"
| Line 9: | Line 9: | ||
'''NETMAP''' | '''NETMAP''' | ||
| − | Download the sources from the upstream repository using following | + | Download the sources from the upstream repository using following command: |
git clone git@github.com:vpp-dev/netmap.git | git clone git@github.com:vpp-dev/netmap.git | ||
| Line 31: | Line 31: | ||
'''VPP''' | '''VPP''' | ||
| − | |||
<pre> | <pre> | ||
| Line 39: | Line 38: | ||
'''mTCP''' | '''mTCP''' | ||
| − | Download | + | |
| + | Download the sources using following command: | ||
git clone git@github.com:vpp-dev/mtcp.git | git clone git@github.com:vpp-dev/mtcp.git | ||
| Line 46: | Line 46: | ||
<pre> | <pre> | ||
| + | ./configure --enable-netmap | ||
| + | </pre> | ||
| + | goto tcp/src/ | ||
| + | <pre> | ||
| + | make | ||
| + | </pre> | ||
| + | |||
| + | goto apps/example | ||
| + | <pre> | ||
| + | make | ||
</pre> | </pre> | ||
Revision as of 10:18, 8 June 2016
NOTE: This page is under construction.
This example shows how to configure and run sample client/server applications using user mode mTCP in 2 linux namespaces (or containers) which communicate through VPP via netmap virtual interfaces.
In this setup we use 2 different namespaces called vpp1 and vpp2 and two sample applications epserver and epwget available with mTCP.
Setup
NETMAP
Download the sources from the upstream repository using following command:
git clone git@github.com:vpp-dev/netmap.git
OR
https://github.com/vpp-dev/netmap/archive/master.zip
Enter LINUX directory and configure netmap. To compile only NETMAP/VALE (using unmodified drivers):
./configure --no-drivers make make apps sudo insmod netmap.ko lsmod | grep netmap
VPP
mTCP
Download the sources using following command:
git clone git@github.com:vpp-dev/mtcp.git
OR
https://github.com/vpp-dev/mtcp/archive/master.zip
./configure --enable-netmap
goto tcp/src/
make
goto apps/example
make
Configure Interfaces
VPP
Run VPP/VPP-lite and create netmap interfaces using following commands:
create netmap name vale00:vpp1 hw-addr 02:FE:3F:34:15:9B pipe master
create netmap name vale00:vpp2 hw-addr 02:FE:75:C5:43:66 pipe master
set int state netmap-vale00:vpp2 up
set int state netmap-vale00:vpp1 up
set int l2 xcon netmap-vale00:vpp1 netmap-vale00:vpp2
set int l2 xcon netmap-vale00:vpp2 netmap-vale00:vpp1
Modify Config Files
Test
Using the VPP debug Command-line Interface (CLI) we can verify interface statistics.
Use the VPP CLI command :
Use the command show interface:
Use the command :