Install dependencies
# 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:
# ./bootstrap # ./configure # make # make install
For release build:
# ./bootstrap # ./configure # make release # make install
Verify installation:
# ./.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:
ICMP_Responder:add_epoll_fd:233: fd 0 added to epoll ICMP_Responder:add_epoll_fd:233: fd 5 added to epoll LIBMEMIF EXAMPLE APP: ICMP_Responder (debug) ============================== libmemif version: 2.0 (debug) memif version: 512 commands: help - prints this help exit - exit app 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 del <index> - delete memif show - show connection details ip-set <index> <ip-addr> - set interface ip address rx-mode <index> <qid> <polling|interrupt> - set queue rx mode sh-count - print counters cl-count - clear counters send <index> <tx> <ip> <mac> - send icmp
Once the library is built/installed, refer to @ref libmemif_examples_doc and @ref libmemif_gettingstarted_doc for additional information on basic use cases and API usage.