diff options
-rw-r--r-- | vcl-ldpreload/README.md | 67 | ||||
-rw-r--r-- | vcl-ldpreload/env.sh | 5 |
2 files changed, 57 insertions, 15 deletions
diff --git a/vcl-ldpreload/README.md b/vcl-ldpreload/README.md index d1ec58a..fd413a3 100644 --- a/vcl-ldpreload/README.md +++ b/vcl-ldpreload/README.md @@ -1,36 +1,73 @@ -# vcl-ldpreload a LD_PRELOAD library that uses VCL library for data transport +# vcl-ldpreload a LD_PRELOAD library that uses the VPP Communications Library (VCL). -libvcl_ldpreload.so library is to be used as a LD_PRELOAD library. User can LD_PRELOAD any application that uses POSIX socket API. This library internally uses libvppcom.so library from VPP project. ## HowTo +If VPP is not installed, but rather built in a separate directory, you can use the VPP_DIR 'configure' argument. +```bash +# 1. Edit vppsb/vcl-ldpreload/env.sh +## set base for directory above vpp and vppsb source + +source ./env.sh + +# 2. 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 + +# 2. 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 +```bash + + +# 3. Running the demo +## Run test script without parameters to see help menu: + +cd $VPP_DIR/test/scripts +./socket_test.sh + +# 4. Docker iPerf examples. +## These launch xterms. To quit, close xterms and run following docker kill cmd (WARNING: This will kill all docker containers!) '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 + + + + The library can be compiled by running the following commands from the vppsb/vcl-ldpreload/src directory: If VPP is installed, then ```bash libtoolize aclocal autoconf -automake +automake --add-missing ./configure make sudo make install ``` -If VPP is not installed, but rather built in a separate directory, you can use the VPP_DIR 'configure' argument. -```bash -autoreconf -i -f -./configure VPP_DIR=<absolute/path/to/vpp> -make -sudo make install -```bash -Useful test script can be found in VPP project: -.../vpp/test/scripts/socket_test.sh - -Running socket_test.sh without parameters will give the help menu. - ## Administrative ### Current status diff --git a/vcl-ldpreload/env.sh b/vcl-ldpreload/env.sh new file mode 100644 index 0000000..dcb0a06 --- /dev/null +++ b/vcl-ldpreload/env.sh @@ -0,0 +1,5 @@ +export VCL_BASE=/home/alagalah/git/work/fdio +export VPP_DIR=$VCL_BASE/vpp +export LDP_DIR=$VCL_BASE/vppsb +export WS_ROOT=$VCL_BASE/vpp +export VCL_LDPRELOAD_LIB=$VCL_BASE/vppsb/vcl-ldpreload/src/.libs |