Difference between revisions of "VPP/VPPCommunicationsLibrary"

From fd.io
< VPP
Jump to: navigation, search
(Created page with "= High Speed container communications using VPP Communications Library (VCL) = Using the VPP Communications Library and an LD_PRELOAD library for standard POSIX sockets, VPP...")
 
Line 6: Line 6:
 
== HowTo ==
 
== HowTo ==
  
== Prequisites ==
+
=== Prequisites ===
  
 
* docker (Version: 17.05)
 
* docker (Version: 17.05)
 
* iperf3 (3.0.11)
 
* iperf3 (3.0.11)
 +
* VPP: git clone https://gerrit.fd.io/r/vpp
 +
* VPPSB: git clone https://gerrit.fd.io/r/vppsb
  
=== Environment Setup and Building ===
+
== Environment Setup and Building ==
  
 
* Clone VPP and the VPPSB projects.
 
* Clone VPP and the VPPSB projects.
Line 42: Line 44:
  
  
=== Running the demo ===
+
== Running the demo ==
  
 
* Run test script without parameters to see help menu:
 
* Run test script without parameters to see help menu:
Line 49: Line 51:
 
   ./socket_test.sh
 
   ./socket_test.sh
  
==== Docker iPerf examples ====
+
=== Docker iPerf examples ===
 
These demos launch xterms, and have been tested on Ubuntu16.04.  
 
These demos launch xterms, and have been tested on Ubuntu16.04.  
 
To quit, close xterms and run following docker kill command
 
To quit, close xterms and run following docker kill command

Revision as of 22:08, 31 August 2017

High Speed container communications using VPP Communications Library (VCL)

Using the VPP Communications Library and an LD_PRELOAD library for standard POSIX sockets, VPP can demonstrate a 2.75x speed improvement over traditional Linux bridge.


HowTo

Prequisites

Environment Setup and Building

  • Clone VPP and the VPPSB projects.
  • Edit vppsb/vcl-ldpreload/env.sh
    • Set VCL_BASE to directory above VPP and VPPSB source. Leave all other env vars in this file alone.
 source ./env.sh
  • Change to VPP source directory and build
 cd $VPP_DIR
  • Modify uri.am to enable socket_test program
 perl -pi -e 's/noinst_PROGRAMS/bin_PROGRAMS/g' $VPP_DIR/src/uri.am
  • Build VPP release
 make install-dep wipe-release bootstrap dpdk-install-dev build-release
  • Build LD_PRELOAD library against VPP build above.

This does not install the LD_PRELOAD library in your system. Instead it will be referenced from the build directory set in VCL_LDPRELOAD_LIB

 cd $LDP_DIR/vcl-ldpreload/src
 autoreconf -i -f
 ./configure VPP_DIR=$VPP_DIR
 make


Running the demo

  • Run test script without parameters to see help menu:
 cd $VPP_DIR/test/scripts
 ./socket_test.sh

Docker iPerf examples

These demos launch xterms, and have been tested on Ubuntu16.04. To quit, close xterms and run following docker kill command

WARNING: This will kill all docker containers on your system. The command below is deliberately commented out to protect the innocent, and copypasta-happy.

 #docker kill $(docker ps -q)


  • Docker iPerf using default Linux Bridge
 ./socket_test.sh -bi docker-kernel
  • Docker iPerf using VPP
 ./socket_test.sh -bi docker-preload