FD.io VPP  v18.07.1-13-g909ba93
Vector Packet Processing
Build Instructions

Install dependencies

1 # sudo apt-get install -y git autoconf pkg_config libtool check

Libmemif is now part of VPP repository. Follow fd.io wiki to pull source code from VPP repository. https://wiki.fd.io/view/VPP/Pulling,_Building,_Running,_Hacking_and_Pushing_VPP_Code#Pushing_Patches

Libmemif is located under extras/libmemif. For debug build:

1 # ./bootstrap
2 # ./configure
3 # make
4 # make install

For release build:

1 # ./bootstrap
2 # ./configure
3 # make release
4 # make install

Verify installation:

1 # ./.libs/icmpr-epoll

Make sure to run the binary file from ./.libs. File ./icmp_responder in libmemif root directory is script that links the library, so it only verifies successful build. Default install path is /usr/lib.

Use help command to display build information and commands:

1 ICMP_Responder:add_epoll_fd:233: fd 0 added to epoll
2 ICMP_Responder:add_epoll_fd:233: fd 5 added to epoll
3 LIBMEMIF EXAMPLE APP: ICMP_Responder (debug)
4 ==============================
5 libmemif version: 2.0 (debug)
6 memif version: 512
7 commands:
8  help - prints this help
9  exit - exit app
10  conn <index> <mode> [<interrupt-desc>] - create memif. index is also used as interface id, mode 0 = slave 1 = master, interrupt-desc none = default 0 = if ring is full wait 1 = handle only ARP requests
11  del <index> - delete memif
12  show - show connection details
13  ip-set <index> <ip-addr> - set interface ip address
14  rx-mode <index> <qid> <polling|interrupt> - set queue rx mode
15  sh-count - print counters
16  cl-count - clear counters
17  send <index> <tx> <ip> <mac> - send icmp

Examples

Once the library is built/installed, refer to Examples and Getting started for additional information on basic use cases and API usage.