blob: 6609f7a19264ef35326e30b8ae12b3145c4f9da4 [file] [log] [blame]
Nathan Skrzypczak8acc5ee2021-10-12 14:00:25 +02001.. _libmemif_build_doc:
2
3Build Instructions
4==================
5
6Install dependencies
7--------------------
8
9::
10
Jakub Grajciare74c04f2021-01-04 11:28:33 +010011 sudo apt-get install -y git cmake autoconf pkg_config libtool
Nathan Skrzypczak8acc5ee2021-10-12 14:00:25 +020012
13Libmemif is now part of VPP repository. Follow fd.io wiki to pull source
14code from VPP repository.
15https://wiki.fd.io/view/VPP/Pulling,_Building,_Running,_Hacking_and_Pushing_VPP_Code#Pushing_Patches
16
Jakub Grajciare74c04f2021-01-04 11:28:33 +010017Libmemif is located under extras/libmemif. From the vpp workspace root directory::
Nathan Skrzypczak8acc5ee2021-10-12 14:00:25 +020018
Jakub Grajciare74c04f2021-01-04 11:28:33 +010019 mkdir -p extras/libmemif/build
20 cd extras/libmemif/build
21 cmake ..
22 make install
Nathan Skrzypczak8acc5ee2021-10-12 14:00:25 +020023
24Verify installation:
25--------------------
26
27::
28
Jakub Grajciare74c04f2021-01-04 11:28:33 +010029 ./examples/icmp_responder -?
Nathan Skrzypczak8acc5ee2021-10-12 14:00:25 +020030
Jakub Grajciare74c04f2021-01-04 11:28:33 +010031Use ``-?`` flag to display help::
Nathan Skrzypczak8acc5ee2021-10-12 14:00:25 +020032
Jakub Grajciare74c04f2021-01-04 11:28:33 +010033 LIBMEMIF EXAMPLE APP: icmp_responder_example
34 ==============================
35 libmemif version: 4.0, memif version: 2.0
36 ==============================
37 In this example, memif endpoint connects to an external application.
38 The example application can resolve ARP and reply to ICMPv4 packets.
39 The program will exit once the interface is disconnected.
40 ==============================
41 Usage: icmp_responder [OPTIONS]
Nathan Skrzypczak8acc5ee2021-10-12 14:00:25 +020042
Jakub Grajciare74c04f2021-01-04 11:28:33 +010043 Options:
44 -r Interface role <slave|master>. Default: slave
45 -s Socket path. Supports abstract socket using @ before the path. Default: /run/vpp/memif.sock
46 -i Interface id. Default: 0
47 -a IPv4 address. Default: 192.168.1.1
48 -h Mac address. Default: aa:aa:aa:aa:aa:aa
49 -? Show help and exit.
50 -v Show libmemif and memif version information and exit.
Nathan Skrzypczak8acc5ee2021-10-12 14:00:25 +020051
Daniel Béreš98533422023-01-19 10:19:27 +010052Running tests:
53--------------
54
55Tests needs to their proper functioning Unity framework which is depended externally and cloned from official git repository::
56
57 mkdir -p extras/libmemif/build
58 cd extras/libmemif/build
59 cmake ..
60 make
61 ctest
62
63``ctest`` will execute the tests and print out brief information about test suites with their statuses.
64
65In case we want verbose: ::
66
67 ctest --verbose
68 ctest --extra-verbose
69
70If there are any needs to debug tests, just add to cmake command ``-DCMAKE_BUILD_TYPE=Debug`` flag.
71
Jakub Grajciare74c04f2021-01-04 11:28:33 +010072Use Cases
73---------
Nathan Skrzypczak8acc5ee2021-10-12 14:00:25 +020074
Jakub Grajciare74c04f2021-01-04 11:28:33 +010075Once the library is built/installed, refer to :ref:`libmemif_gettingstarted_doc`
76and :ref:`libmemif_examples_doc` for additional information on basic use cases
77and API usage.